ARC "AutoscalingRunnerSet" creates no runners in CI
An AutoscalingRunnerSet exists but never scales up: no ephemeral runner pods spawn when jobs queue. The listener is not receiving assignments, the runs-on label does not match, or maxRunners caps at zero.
What this error means
kubectl shows the AutoscalingRunnerSet and its listener but zero runner pods, while a workflow sits "Waiting for a runner". Nothing in the runner namespace changes.
$ kubectl get autoscalingrunnerset -n arc-runners
NAME MINIMUM MAXIMUM CURRENT PENDING RUNNING
arc-runner-set 0 10 0 0 0Common causes
The listener is not running
Without a healthy listener pod in the controller namespace, no job assignments arrive, so the set never scales past the minimum.
runs-on does not match the scale set name
Jobs target a label that is not the scale set name, so GitHub never routes them to this set and CURRENT stays at zero.
How to fix it
Confirm the listener is up and the label matches
- Check the listener pod in the controller namespace is Running.
- Confirm the workflow runs-on value equals the scale set (installation) name.
- Confirm maxRunners is greater than zero in the values.
kubectl get pods -n arc-systems | grep listener
kubectl get autoscalingrunnerset -n arc-runners -o wideFix the runs-on label in the workflow
Set runs-on to the exact scale set name so GitHub dispatches jobs to this set.
jobs:
build:
runs-on: arc-runner-setHow to prevent it
- Keep the scale set name and runs-on label identical.
- Monitor the listener pod so a crash is caught immediately.
- Set maxRunners above zero for every active scale set.