ARC runner "Init:Error" (dind init) in CI
An ARC runner pod uses init containers to prepare the runner, including the Docker-in-Docker setup in dind mode. Init:Error means one of those init steps exited non-zero, so the runner container never starts.
What this error means
The runner pod shows STATUS Init:Error or Init:CrashLoopBackOff. The main runner container stays uninitialized while the init step keeps failing.
$ kubectl get pod -n arc-runners arc-runner-set-xxxx
NAME READY STATUS RESTARTS
arc-runner-set-xxxx 0/2 Init:Error 3Common causes
The dind or externals init step failed
In dind mode an init container copies the runner externals or prepares Docker; a missing volume, image, or permission makes it exit with an error.
Wrong containerMode configuration
A containerMode misconfiguration (for example dind without the matching volumes) leaves the init container unable to complete.
How to fix it
Read the init container logs
- List the pod containers to find the failing init container name.
- Read that init container logs for the exit reason.
- Fix the referenced image, volume, or permission it names.
kubectl logs -n arc-runners <runner-pod> -c init-dind-externalsUse the supported containerMode config
Set containerMode to dind (or kubernetes) exactly as documented so the init containers and volumes are generated correctly.
containerMode:
type: "dind"How to prevent it
- Configure containerMode from the documented example, not by hand.
- Ensure init container images are pullable in the cluster.
- Keep runner and dind image versions compatible.