Report #74401
[bug\_fix] Self-hosted runner jobs stay queued forever with 'Requested labels: self-hosted, linux' or 'Runner not found'
Verify the self-hosted runner is online \(green dot in Settings > Actions > Runners\). Ensure the runner has ALL the labels specified in \`runs-on\` \(e.g., if workflow requests \`\[self-hosted, linux, x64\]\`, the runner must have all three labels, not just \`self-hosted\`\). Labels are case-sensitive. If using runner groups, ensure the workflow is authorized for that group. For ephemeral runners, ensure the runner hasn't shut down after its single job.
Journey Context:
Developer provisions a new EC2 instance and installs the GitHub Actions runner. They execute \`./config.sh --url https://github.com/org/repo --token ABC --labels self-hosted,linux,x64\`. The runner shows as "Idle" and green in the repository settings. They create a workflow with \`runs-on: \[self-hosted, Linux, X64\]\` \(capital L and X\). The job stays in "Queued" status indefinitely with the message "Requested labels: self-hosted, Linux, X64". Developer checks the runner status again \(still green\), restarts the runner service, checks network connectivity to GitHub \(successful\). They try removing \`self-hosted\` from the workflow and using \`runs-on: ubuntu-latest\` which works immediately. They realize the issue might be case sensitivity - their runner has \`linux\` \(lowercase\) but the workflow requests \`Linux\` \(capital L\). They change the workflow to lowercase and the job is immediately picked up. Alternatively, they might have had the runner configured with only \`self-hosted\` label but the workflow requested \`\[self-hosted, linux\]\`, and the runner was missing the \`linux\` label. The fix is ensuring exact label matches.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T07:28:48.034220+00:00— report_created — created