GitHub Actions "Waiting for a runner" on a Larger/Custom Runner Label
A job targeting a larger or custom-labeled GitHub-hosted runner sits in "Waiting for a runner" because the runner group has no spare capacity right now, the label does not match a configured runner, or the repository is not granted access to that group.
What this error means
A job requesting a larger/custom runner label queues and never starts, while jobs on standard ubuntu-latest run fine. There is no error, just an unbounded wait for the specific label.
Requested labels: ubuntu-latest-8-cores
Waiting for a runner to pick up this job...Common causes
Runner group at capacity
Larger runners have a configured maximum concurrency. When all are in use, additional jobs queue until one frees up.
Label not configured or no group access
The custom label must exactly match a runner defined in a runner group, and the repository must be granted access to that group, or no runner can ever pick up the job.
How to fix it
Use a configured label and grant access
Request the exact label your runner group defines, and ensure the repo can use that group.
runs-on: ubuntu-latest-8-cores # must match a runner-group label
# Org settings > Actions > Runner groups: grant this repo accessRaise capacity or fall back
- Increase the max-concurrency for the larger-runner group if jobs routinely queue.
- Confirm the label spelling matches the runner-group configuration exactly.
- Fall back to a standard label for jobs that do not truly need the larger runner.
How to prevent it
- Match custom runner labels exactly to the runner-group definition.
- Grant repositories access to the runner groups they target.
- Size larger-runner concurrency to your peak demand.