Thomas DeBroux
09/11/2025, 2:52 PMMarvin
09/11/2025, 2:52 PMNate
09/11/2025, 2:56 PMMarvin
09/11/2025, 3:11 PMflow.from_source(...))
Scheduling and orchestration
- Timezone/DST mismatch in the deployment schedule vs. expectations
- Clock skew between your scheduler, worker machine(s), and UI expectations
- API/scheduler delays or temporary service connectivity issues
- Run is intentionally deferred:
- Awaiting concurrency slot
- Awaiting retry (backoff)
- Paused/Suspended until manually or programmatically resumed
Misconfiguration or errors
- Work pool misconfiguration (bad job template, missing permissions) preventing start
- Work queue filters don’t match your deployment
- Run input or automation gating (e.g., awaiting manual input) holding the run
About the “Late” state in the UI
- “Late” indicates the scheduled start time has passed and the run has not progressed to pending/running yet; it’s a non-terminal scheduled state. Once a worker claims it or a block is cleared, it should move forward.
- If a worker claims the run before the scheduled time but the container takes a long time to spin up, you may see “Pending/Running” rather than “Late,” even though the actual work starts later than you expect.
Quick ways to diagnose
- Verify the worker is running on the correct pool/queues and has capacity:
prefect work-pool inspect <pool-name>
prefect work-queue ls
prefect work-queue inspect <queue-id>
prefect worker start -p <pool-name> # run a worker if you don’t have one
- Check deployment schedules and timezones:
prefect deployment inspect <flow-name>/<deployment-name>
prefect deployment schedule ls <flow-name>/<deployment-name>
- Look for concurrency bottlenecks:
prefect work-pool inspect <pool-name> # pool concurrency
prefect work-queue inspect <queue-id> # queue concurrency
prefect concurrency-limit ls # tag-based limits
prefect global-concurrency-limit ls # global limits
- Peek at runs waiting in a queue:
prefect work-queue read-runs <queue-id>
- Confirm the state timeline and logs in the UI for clear signals like AwaitingConcurrencySlot, AwaitingRetry, Paused, etc.
References
- States in Prefect 3
- Work pools and workers
- Schedules (API reference)
If you can share a specific flow/deployment name, work pool type, and what you see in the run’s state timeline, I can help pinpoint the exact cause.