GitHub Actions concurrency limit reached for repository
Each plan caps how many GitHub-hosted jobs can run at once. Beyond the cap, additional jobs queue until a slot frees, even if minutes remain. This is a parallelism cap, not a billing block.
What this error means
Many jobs sit queued while a few run; the limit is the plan concurrency cap, not minutes.
The job is queued because the concurrency limit for this account has been reached.
Waiting for a concurrent job slot to free up.Common causes
Plan concurrent-jobs cap hit
Total simultaneous GitHub-hosted jobs across the account reached the plan ceiling.
Large matrix fan-out
A big matrix requests more parallel jobs than the cap allows.
How to fix it
Reduce parallel demand or raise the plan
- Cap matrix parallelism with strategy.max-parallel.
- Upgrade the plan for a higher concurrency ceiling.
Use managed runners for elastic parallelism
- Latchkey managed runners scale from warm pools without the GitHub-hosted shared concurrency cap, so burst jobs do not starve.
- Target the Latchkey label for high-parallelism workloads.
jobs:
test:
runs-on: latchkey-small
strategy:
matrix:
shard: [1,2,3,4,5,6,7,8]How to prevent it
- Right-size matrix fan-out to the available concurrency.
- Use managed runners when parallelism needs exceed the hosted cap.