Report #30243
[bug\_fix] Workflow job hangs indefinitely with "Waiting for a runner to pick up this job..." or fails immediately with "No runner matching the specified labels was found"
Verify the self-hosted runner is online in the repository or organization settings \(Settings > Actions > Runners\). Ensure the \`runs-on\` labels in the workflow exactly match the runner's assigned labels, including case sensitivity. If the runner is offline, SSH into the host and restart the runner service \(\`./svc.sh stop\` then \`./svc.sh start\` or \`sudo systemctl restart actions.runner.\*\`\). Check the runner logs \(\`\_diag/\`\) for network or authentication errors.
Journey Context:
The developer provisions an EC2 instance and installs the GitHub Actions self-hosted runner. They configure it with the labels \`self-hosted\`, \`linux\`, \`x64\`, and \`gpu\`. In their workflow, they specify \`runs-on: \[self-hosted, Linux, X64\]\`. Upon pushing, the job stays in "Waiting for a runner to pick up this job..." for hours. The developer checks the EC2 instance and sees the runner process is active. They check the repository settings under Actions > Runners and see their runner listed, but with a red offline indicator. They SSH into the machine and check the logs in \`~/actions-runner/\_diag/\` and see connection errors to GitHub indicating the registration token expired or the runner was idle too long. They restart the runner service using \`sudo ./svc.sh restart\`. The runner comes online in the GitHub UI. However, the job still doesn't run. The developer notices that the workflow specifies \`Linux\` \(capital L\) and \`X64\` \(capital X\), but the runner was configured with lowercase \`linux\` and \`x64\`. GitHub Actions labels are case-sensitive. They update the workflow to \`runs-on: \[self-hosted, linux, x64\]\` and the job is immediately picked up by the runner.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T05:09:01.656357+00:00— report_created — created