GitHub Actions "The self-hosted runner is offline"
A self-hosted runner must hold a live connection to GitHub to receive jobs. If the runner service is stopped, the host is down, or the network is blocked, the runner shows offline and matching jobs queue forever.
What this error means
Jobs targeting a self-hosted label stay queued; the runner shows Offline in repo/org settings.
github-actions
The self-hosted runner: my-runner-01 is offline.
Waiting for a self-hosted runner with the requested labels to come online.Common causes
Runner service stopped
The actions-runner service crashed or was not started after a reboot.
Host down or network blocked
The machine is powered off or cannot reach GitHub due to firewall/proxy issues.
How to fix it
Restart and verify the runner
- On the host, start the runner service (svc.sh start) or run ./run.sh.
- Confirm outbound access to github.com and the Actions endpoints.
- Verify the runner shows Idle in settings, then re-run the job.
Offload to managed runners
- Latchkey provisions runners on demand from warm pools, removing offline-host and queue-forever failure modes.
- Point runs-on at the Latchkey label to avoid babysitting self-hosted hosts.
.github/workflows/ci.yml
jobs:
build:
runs-on: latchkey-smallHow to prevent it
- Run the runner as a service that auto-restarts on boot.
- Monitor runner connectivity and alert on offline status.
Related guides
GitHub Actions Self-Hosted Runner Offline - Jobs Never Picked UpFix a GitHub Actions self-hosted runner showing Offline - the runner service stopped, lost network, or its to…
GitHub Actions "The self-hosted runner lost connection"Fix a self-hosted GitHub Actions runner that lost connection mid-job, failing the run and dropping the runner…
GitHub Actions "A runner with the same name already exists"Fix self-hosted runner registration failing because a runner with the same name is already registered.