Amir Kamal
09/02/2025, 7:42 AMMarvin
09/02/2025, 7:42 AMMarvin
09/02/2025, 7:48 AMprefect work-pool inspect <your-pool>
If you see a pool concurrency limit that’s already in use, that’s the bottleneck.
2) Is the queue actually being polled and unpaused?
- Inspect the queue:
prefect work-queue inspect critical -p <your-pool>
prefect work-queue preview critical -p <your-pool>
Preview shows what would be offered next and can reveal blocking conditions.
3) Is a worker polling this queue?
- Make sure a worker is running and pointed at the pool and queue:
prefect worker start --pool <your-pool> --work-queue critical
Confirm in the UI that a worker is online for this pool and queue.
4) Any global concurrency limits?
- In the UI, check the Concurrency page for any limits that might apply to these runs.
Docs: Global concurrency limits
5) Infra constraints?
- Look at a specific run’s timeline/states. If it’s stuck in SUBMITTED/WAITING, check your infra (K8s quotas, node capacity, Docker availability, etc.).
Helpful docs:
- Work pools: Concepts: Work pools
- Work pool CLI: CLI: work-pool
- Work queues CLI: CLI: work-queue
- States (incl. Late): Concepts: States
If you can share:
- The work pool name and whether it has a concurrency limit
- Whether a worker is running and polling the “critical” queue
- Output of:
prefect work-pool inspect <your-pool>
prefect work-queue inspect critical -p <your-pool>
prefect work-queue preview critical -p <your-pool>
…I can pinpoint the exact cause.Amir Kamal
09/02/2025, 7:53 AMMarvin
09/02/2025, 7:54 AMMarvin
09/02/2025, 7:54 AMprefect work-queue inspect critical -p <your-pool>
- Preview what the queue would offer if polled now (useful to spot blocking conditions):
prefect work-queue preview critical -p <your-pool>
Worker logs
- On the machine where you started the worker, check its stdout/stderr. On startup it should print something like:
Polling work pool "<your-pool>" for flow runs from queues: ["critical"]
…and then periodic poll messages. If you don’t see “critical” listed, it isn’t polling that queue.
Start (or restart) the worker with the right queue(s)
prefect worker start --pool <your-pool> --work-queue critical
Docs for reference:
- Work pools: Concepts: Work pools
- Work queue CLI: CLI: work-queue
If you share screenshots or the output of:
prefect work-queue inspect critical -p <your-pool>
prefect work-queue preview critical -p <your-pool>
I can help confirm whether the queue is being polled and what might be blocking runs.Amir Kamal
09/02/2025, 7:56 AMMarvin
09/02/2025, 7:56 AMMarvin
09/02/2025, 7:59 AMprefect worker start --pool <your-pool> --work-queue critical
Then check its logs — you should see something like:
Polling work pool "<your-pool>" for flow runs from queues: ["critical"]
2) Check if the server would actually hand out runs from the queue
- If preview shows runs waiting but your worker isn’t starting them, it’s a worker presence/capacity issue.
prefect work-queue preview critical -p <your-pool>
3) Confirm the runs you expect are in that queue and not filtered out
- Open a late run in the UI and confirm its Work pool and Queue show your pool/“critical”.
- Or list the runs on that queue (note: this triggers an artificial poll — don’t use it to infer a worker is online):
prefect work-queue read-runs critical -p <your-pool>
4) Rule out pool-level concurrency
- A pool-wide limit can block the queue even if the queue’s own limit has room:
prefect work-pool inspect <your-pool>
5) Rule out global concurrency limits
- In the UI, check Concurrency for any keys that might be at capacity.
Docs: Global concurrency limits
Helpful docs:
- Work pools: Concepts: Work pools
- Work queue CLI: CLI: work-queue
- Work pool CLI: CLI: work-pool
If you can share:
- A screenshot of the pool’s Workers tab (showing Online workers)
- Output of:
prefect work-pool inspect <your-pool>
prefect work-queue inspect critical -p <your-pool>
prefect work-queue preview critical -p <your-pool>
…I can pinpoint what’s blocking the runs.