GitHub Actions "No runner matching the specified labels was found"
The workflow requested a label set that no online self-hosted runner advertises, so GitHub has nowhere to send the job and reports the mismatch immediately.
What this error means
The job fails to start with "No runner matching the specified labels was found: self-hosted, <label>". The Settings > Actions > Runners page shows no online runner with that exact label combination.
github-actions
No runner matching the specified labels was found: self-hosted, linux, gpuCommon causes
Label typo or missing custom label
A custom label in runs-on (gpu, arm64, build-large) is misspelled or was never added to any runner, so the AND of all requested labels matches nothing.
The matching runner is offline
A runner that would match is registered but not connected, so it cannot be selected and the request resolves to no match.
How to fix it
Align labels with a registered runner
- List runners under Settings > Actions > Runners and note their labels.
- Make runs-on an exact subset of one online runner's labels.
- Add any missing custom label to the runner via ./config.sh --labels.
- Confirm the runner shows Idle (green) before re-running.
.github/workflows/ci.yml
jobs:
build:
runs-on: [self-hosted, linux, gpu]How to prevent it
- Document the canonical label set for each self-hosted pool.
- Lint runs-on against known labels in review.
- Alert when a labeled runner goes offline so jobs do not silently fail to match.
Related guides
GitHub Actions "The job was not acquired by Runner of type X"Fix GitHub Actions "The job was not acquired by Runner of type X" / "waiting for a runner" - the job matched…
GitHub Actions runs-on label typo (e.g. "ubntu-latest")Fix a GitHub Actions job that never starts because of a runs-on label typo like "ubntu-latest" that matches n…
GitHub Actions "The self-hosted runner lost connection"Fix a self-hosted GitHub Actions runner that lost connection mid-job, failing the run and dropping the runner…