Skip to content
Latchkey

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

CauseFix
GitHub Actions incidentCheck githubstatus.com - org-wide queuing is usually an outage
Concurrency limit reachedOther runs are using your concurrent-job allowance; wait or raise the plan
No runner matches the labelsA self-hosted/runs-on label has no online runner - fix the label or bring a runner online
Billing / spending limitHit the spending limit or unpaid invoice - runners pause until resolved
Larger-runner capacitySpecific 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

Run this faster and cheaper on Latchkey managed runners. Start free →