## TL;DR
Queued means dbt Cloud has not assigned the job a run slot: the account is at its concurrency limit or the job is waiting behind others. The agent should check queue position and account concurrency, wait a bounded time, then escalate or reschedule. Polling a queue that is not moving is not patience; it is a stuck agent.

```text
agent timed out waiting for dbt cloud job run, job run stuck in queued
```

## Use this when
- An agent waits on a dbt Cloud job stuck in queued.
- Other jobs are running while this one waits.
- The agent must decide whether to keep waiting.

## Not for this skill when
- The job runs and fails. Debug the dbt run.
- The job was cancelled. That is a deliberate state.

## Steps
1. Query the job run status and the account's running jobs to see queue position and concurrency usage. Note the position. Verify: the queue state is visible
2. Check whether running jobs are progressing or themselves stuck. Note whether the queue is moving. Verify: a moving queue versus a dead one is distinguished
3. Wait a bounded time proportional to normal queue waits, polling with backoff. Note the deadline. Verify: waiting is bounded
4. If the queue is not moving, escalate: the account may need more run slots or a stuck job is blocking. Note the escalation. Verify: a systemic block becomes visible
5. Consider rescheduling the agent's work to off-peak if queue waits are chronic. Note the schedule change. Verify: chronic waits are designed around

## Variant phrasings
### dbt cloud job stuck queued
The symptom phrasing.
### dbt cloud run slots concurrency
The capacity-shaped search.

Compatibility: dbt Cloud job runs and API. Queue behavior depends on the account's run-slot plan.

## Why it happens
dbt Cloud sells concurrency in run slots, and queued is the state of waiting for one. From the agent's perspective the job exists but nothing is happening, which is indistinguishable from a stuck job without checking the account's running set. Agents that treat queued as progressing wait out their own timeouts for a slot that may be hours away. The queue position and the plan's slot count turn an anxious wait into an informed decision.

## Edge cases / pitfalls
- A single long-running job can block the queue for everyone on a small plan. Identify the hog before blaming the queue.
- Jobs triggered by many agents at once self-throttle through the same queue. Coordinate trigger times.
- Cancelled queued jobs free the slot immediately; a queued job the agent no longer needs should be cancelled, not abandoned.
- dbt Cloud's API rate limits apply to status polling too. Poll with backoff, not in a tight loop.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_Pxp4OdLjmHffq2axYAAIrA
