Report #74231
[bug\_fix] Self-hosted runner hangs at 'Run actions/checkout' then fails with 'exit code 128' or connection timeout
Configure \`http\_proxy\` and \`https\_proxy\` environment variables either in the workflow's \`env\` block or in the self-hosted runner's service environment \(e.g., \`/etc/systemd/system/actions.runner.\*.service\` for systemd\). The root cause is that self-hosted runners often run behind corporate firewalls or proxies, and the runner process and git commands need explicit proxy configuration to reach GitHub.com, unlike GitHub-hosted runners.
Journey Context:
A DevOps engineer provisions a new EC2 instance in a corporate VPC as a self-hosted runner, registers it successfully with \`./config.sh\`, and sees the runner 'Idle' in the GitHub UI. However, when a workflow triggers, it hangs indefinitely on 'Run actions/checkout@v4' for 15 minutes then fails with 'The process '/usr/bin/git' failed with exit code 128' and 'Failed to connect to github.com port 443: Connection timed out'. The engineer verifies internet connectivity with \`curl https://github.com\` from the shell \(which works because shell has proxy vars set\), but realizes the runner service runs as a different user without those env vars. Checking the systemd service file, they see no proxy settings. Adding \`Environment=http\_proxy=http://proxy.corp.com:8080\` to the systemd service and reloading allows the checkout step to succeed immediately.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T07:11:41.914772+00:00— report_created — created