GitHub Actions Stuck on Queued: Why Jobs Don’t Start
A job sitting in "queued" means no runner has picked it up yet. Here is why, in order of likelihood.
When jobs queue and never start, work down this list from most to least common.
Causes and fixes
| Cause | Fix |
|---|---|
| GitHub Actions incident | Check githubstatus.com - org-wide queuing is usually an outage |
| Concurrency limit reached | Other runs are using your concurrent-job allowance; wait or raise the plan |
| No runner matches the labels | A self-hosted/runs-on label has no online runner - fix the label or bring a runner online |
| Billing / spending limit | Hit the spending limit or unpaid invoice - runners pause until resolved |
| Larger-runner capacity | Specific larger-runner sizes can have brief capacity waits |
Reduce your exposure
Managed runners run on infrastructure independent of GitHub-hosted capacity and scale to your demand, so jobs are less likely to sit queued behind a capacity or concurrency wall.
Key takeaways
- Org-wide queuing = check status first.
- Single-workflow queuing = labels, concurrency, or billing.
- Independent managed runners reduce capacity waits.
Related guides
Is GitHub Actions Down? How to Check and What to DoHow to tell if GitHub Actions is down - check the status page, distinguish an outage from your own failure, a…
GitHub Actions "Runner not found" - Registration Lost or RacedFix GitHub Actions "Runner not found" when a job is dispatched to a runner that deregistered, was reclaimed,…
GitHub-Hosted vs Self-Hosted vs Managed Runners (2026)GitHub-hosted vs self-hosted vs managed GitHub Actions runners compared on cost, speed, maintenance, and reli…