Why is my GitHub Actions job waiting for a runner?
What does “Waiting for a runner to pick up this job” mean?
“Waiting for a runner to pick up this job” means GitHub has queued the job but no online, idle runner matches every label in its runs-on line. The usual causes are a misspelled or retired label, a self-hosted runner that is offline or busy, a larger runner the organization never created or a repository outside its runner group, and the account’s concurrent-job limit. Check the label against an online runner first. On Sengi, 2 vCPU jobs land on a pre-booted fresh VM in 2 seconds, on AMD Ryzen 9 7950X3D bare metal boosting past 5 GHz.
Last checked October 23, 2026, against GitHub’s runner-routing documentation and its Actions limits reference.
Why is the job waiting, and how do I fix it?
| Cause | How to check | Fix |
|---|---|---|
| The label matches no runner | Compare runs-on character by character with the runner’s labels. | Correct the label; drop labels the runner does not carry. |
| A retired runner or provider | The label names a service that stopped, such as BuildJet after March 31, 2026. | Move to a live runner; see the BuildJet alternative. |
| A self-hosted runner is offline or busy | The runner list shows it offline, or busy with another job. | Bring it back, or add capacity. |
| A larger runner is not available to the repository | The organization has not created it, or the repository is outside its runner group. | Create it or grant the group; personal accounts cannot use larger runners. |
| The concurrent-job limit | Other jobs are running across the account. | Wait, cancel superseded runs, or raise the limit with your plan. |
A job can also look stuck while it waits on needs, a concurrency group or an environment approval; those show a different status. The full diagnosis is in GitHub Actions jobs stuck waiting for a runner.
How long should a job take to start?
GitHub publishes no start time for its hosted runners. Sengi keeps 2 vCPU runners pre-booted: the job lands on a fresh VM that is already running and is ready in 2 seconds, and boot time is never billed. Each job then runs on an AMD Ryzen 9 7950X3D boosting past 5 GHz, with builds up to 1.9× faster than on GitHub’s runner, from $0.003 a minute. See the runner comparison.
Frequently asked questions
Why is my ubuntu-latest job queued?
A job on a GitHub-hosted label usually waits because the account has reached its concurrent-job limit: 20 jobs on GitHub Free, 40 on Pro, 60 on Team and 500 on Enterprise Cloud. If every job in every repository is waiting, check GitHub's status page for an Actions incident.
Does a waiting job use GitHub Actions minutes?
No. GitHub bills execution time, not time spent waiting in the queue. The clock starts when a runner picks the job up.
Can several labels in runs-on keep a job waiting?
Yes. A runner must carry every label in the list to take the job, so an extra or misspelled label leaves it waiting even when matching runners are online.
How fast do jobs start on Sengi?
Sengi keeps 2 vCPU runners pre-booted, so a 2 vCPU job lands on a fresh VM that is already running and is ready in 2 seconds. Boot time is never billed.
The fastest hardware for your GitHub Actions.
AMD Ryzen 9 7950X3D desktop CPUs boosting past 5 GHz, on bare metal with local NVMe, a fresh VM for every job, and 2 vCPU jobs ready in 2 seconds. Builds finish up to 1.9× faster than on GitHub’s runners, and at up to half GitHub’s price per minute they cost up to 74% less per build. Change one runs-on line, or give your coding agent one prompt and it opens the pull request for you.
