Skip to content
Latchkey

GitLab "no runners with matching tags" - Tag Mismatch

Runners are online, but none carry the exact tag set this job requires. GitLab matches jobs to runners by tag, and an empty intersection means the job waits.

What this error means

The job stays pending with a banner listing the required tags and noting no runner matches all of them. Other jobs in the same project run fine - only the tagged one is stuck.

Job page
This job is stuck because you don't have any active runners online or available with any of these tags assigned to them: gpu, cuda

Common causes

Job tags not present on any runner

A job with tags: [gpu, cuda] only runs on a runner carrying both tags. If no online runner has them, it never starts.

Tag typo or case mismatch

Runner tags are exact strings. Docker vs docker, or arm-64 vs arm64, will not match.

How to fix it

Align job tags with a runner

Set the job’s tags to a set an online runner actually carries.

.gitlab-ci.yml
build:
  tags:
    - docker      # must exactly match a runner's tag
  script: make build

Add the tag to a runner or allow untagged

  1. In the runner’s settings, add the missing tag, or enable "Run untagged jobs".
  2. Confirm the runner is online and the tag spelling matches exactly.
  3. Re-run the job; it should pick up immediately.

How to prevent it

  • Document the tag vocabulary for your runner fleet.
  • Keep job tags minimal and consistent with available runners.
  • Allow untagged jobs on a general-purpose runner as a fallback.

Related guides

Tired of flaky CI? Latchkey auto-heals failed jobs and retries them for you. Start free →