gh api generate-jitconfig failed … 403 | gh api repos/OWNER/REPO/actions/runners --jq '.total_count' — do you have repo admin? | Self-hosted runner registration needs admin on the repo (or org). Get admin, or gh auth refresh -s admin:org / re-gh auth login with the right account. |
gh api generate-jitconfig failed … 404 | Is target/scope in the config right? Repo scope needs owner/repo; org scope needs the org login. | Fix [github] target/scope; confirm the repo/org exists and the token can see it. |
failed to run docker / daemon unreachable | docker version (does the Server section print?), docker context ls | Start the daemon (Colima/Lima/Docker Desktop). If a stale context is selected: docker context use default (or the right one). |
Image pull denied from ghcr.io | docker pull ghcr.io/actions/actions-runner:latest | A stale/expired ghcr login blocks even public pulls: docker logout ghcr.io, retry. For private images, gh auth token | docker login ghcr.io -u USER --password-stdin. |
clamping cpus … (docker daemon capacity) warning | docker info --format '{{.NCPU}} {{.MemTotal}}' | Expected when the daemon is a small VM. ezgha derives limits from the daemon, not the host. Lower [limits] cpus/memory_mb, or give the VM more (e.g. colima start --cpu N --memory G). |
only N GB free on docker's filesystem (floor: X GB) — refusing to spawn | docker system df | Reclaim space: docker system prune (add -a --volumes if safe). The floor is measured inside the daemon; grow the VM disk if it stays low. Tune [limits] min_free_disk_gb. |
policy requires vm isolation but best available backend is docker | ezgha doctor (is the daemon in a VM?) | The daemon is bare-metal docker. Either run docker inside a VM (Colima/Lima/Docker Desktop — reclassified as VM-grade by daemon-vs-host kernel mismatch), or lower [policy] minimum_isolation = "container". |
| Service not respawning runners | journalctl --user -u ezgha.service -n 50 (Linux); launchctl list | grep ezgha (macOS) | Read the log for the real error (usually gh auth or docker). Re-run ezgha install-service. Note ezgha stop does not stop the service, so serve respawns within 30s — systemctl --user stop ezgha.service to pause it. |
gh api generate-jitconfig failed … 422 (runner name) | hostname — runner names are ezgha-<hostname>-<suffix>; GitHub caps names at 64 chars | Set a shorter hostname, or run on a host whose name keeps ezgha-<hostname>- well under 64 chars. |
gh auth: ✗ in doctor | gh auth status | gh auth login (or gh auth switch to the account with admin on the target). |
| No backend usable | ezgha doctor backend list empty | Install docker (or a VM backend). ezgha needs at least one usable backend. |