Skip to content
Latchkey

GitHub Actions Self-Hosted Runner Offline - Jobs Never Picked Up

Your self-hosted runner appears Offline in settings, so it cannot claim jobs. The runner agent crashed, lost connectivity to GitHub, or its registration was invalidated.

What this error means

Jobs targeting the runner stay queued while the runner shows a red Offline status in repo or org settings. Restarting the runner service brings it back online.

Runner settings
# in Settings > Actions > Runners
my-runner-01   Offline   self-hosted, linux, x64

Common causes

Runner service stopped or crashed

The self-hosted runner runs as a service or process. If it exits (OOM, host reboot, crash) without auto-restart, it disconnects and goes offline.

Lost network or expired registration

A firewall change, lost outbound HTTPS, or an expired/revoked registration token prevents the runner from maintaining its long-poll connection to GitHub.

How to fix it

Restart the runner service

Terminal
# from the runner install directory
sudo ./svc.sh status
sudo ./svc.sh start
# or reconfigure with a fresh registration token
./config.sh remove --token <OLD>
./config.sh --url https://github.com/org/repo --token <NEW>

Restore connectivity and auto-recovery

  1. Confirm the host can reach github.com and *.actions.githubusercontent.com over HTTPS.
  2. Install the runner as a service so it restarts after a reboot or crash.
  3. Use ephemeral runners or an autoscaler for fleets that recycle frequently.

How to prevent it

  • Run self-hosted runners as a managed service with auto-restart.
  • Monitor runner online status and alert when one drops.
  • Use ephemeral/autoscaled runners to avoid stale long-lived agents.

Frequently asked questions

What causes "Runner offline"?
The self-hosted runner runs as a service or process. If it exits (OOM, host reboot, crash) without auto-restart, it disconnects and goes offline.
How do I fix Runner offline?
Restart the runner service
Can Latchkey fix this automatically?
Yes. Latchkey runs your GitHub Actions on managed runners that detect this failure, apply the fix, and retry the job automatically - self-healing is on by default.

Related guides

References

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