ARC workflow stuck "Waiting for a runner" in CI
A workflow job sits on "Waiting for a runner to pick up this job" and never starts. With ARC this is almost always a label mismatch: runs-on must equal the scale set installation name.
What this error means
The GitHub job page shows "Waiting for a runner to pick up this job" indefinitely, while the scale set exists and the listener is running but no runner is assigned.
Requested labels: arc-linux
Waiting for a runner to pick up this job...
(no runner in any scale set matched runs-on: arc-linux)Common causes
runs-on does not equal the scale set name
The runner scale set only accepts jobs whose runs-on matches its installation name; any other label leaves the job unmatched and waiting.
The scale set is at maxRunners or the listener is down
If the set is already full or the listener is not delivering assignments, jobs queue even with the right label.
How to fix it
Set runs-on to the scale set name
- Find the scale set installation name from the Helm release.
- Set the workflow runs-on to that exact value.
- Push and confirm a runner picks up the job.
jobs:
build:
runs-on: arc-runner-setVerify capacity and the listener
Confirm maxRunners is not exhausted and the listener pod is Running so assignments flow.
kubectl get autoscalingrunnerset -n arc-runners -o wideHow to prevent it
- Name scale sets to match the runs-on labels teams already use.
- Document the exact runs-on value per scale set.
- Monitor the listener so a down listener is caught quickly.