Skip to content
Latchkey

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.

GitHub Actions
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

  1. Find the scale set installation name from the Helm release.
  2. Set the workflow runs-on to that exact value.
  3. Push and confirm a runner picks up the job.
.github/workflows/ci.yml
jobs:
  build:
    runs-on: arc-runner-set

Verify capacity and the listener

Confirm maxRunners is not exhausted and the listener pod is Running so assignments flow.

Terminal
kubectl get autoscalingrunnerset -n arc-runners -o wide

How 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.

Frequently asked questions

What causes ""Waiting for a runner to pick up this job""?
The runner scale set only accepts jobs whose runs-on matches its installation name; any other label leaves the job unmatched and waiting.
How do I fix "Waiting for a runner to pick up this job"?
Set runs-on to the scale set name

Related guides

References

Latchkey auto-heals failures like this one - detected, fixed, and retried without you. Start free → 30-day trial · No credit card