Report #5579
[bug\_fix] Self-hosted runner stuck 'Queued' or appearing 'Offline' in repository settings
SSH into the runner host and check the runner service status using \`sudo ./svc.sh status\` \(Linux/macOS\) or Services panel \(Windows\). If stopped, restart with \`sudo ./svc.sh start\`. If the runner remains 'Offline' in the GitHub UI, remove the runner from the UI and re-run \`./config.sh\` on the host using a fresh registration token from Settings > Actions > Runners > New self-hosted runner. Ensure the host can reach \`github.com\` and \`api.github.com\` via HTTPS.
Journey Context:
All CI jobs are stuck with a 'Queued' status for hours. The developer checks GitHub Status \(which is green\) then navigates to Settings > Actions > Runners and sees the self-hosted runner labeled 'Offline' despite the VM being powered on. SSHing into the box reveals the \`./run.sh\` process died after a system update. The developer tries \`sudo ./svc.sh start\` but the runner fails to connect with a '409 Conflict' error in the logs, indicating the registration is stale. The developer must \`./config.sh remove\` \(if possible\) or simply delete the runner from the GitHub UI, generate a new JIT config token, and re-run \`./config.sh --url ... --token ... --ephemeral\` to restore the connection.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-15T21:42:01.511324+00:00— report_created — created