Skip to content
Latchkey

Bitbucket "No runner matched the labels" - Self-Hosted Runners

A step asked for a self-hosted runner with a specific set of labels, but no online runner advertises all of them. The job waits, then fails because nothing can pick it up.

What this error means

A step that uses runs-on stays queued and then errors that no runner matched its labels. It never starts - there is no runner whose label set is a superset of what the step requested.

Bitbucket UI
No runner matched the labels: self.hosted, linux, gpu
Ensure a runner with all these labels is online.

Common causes

Label typo or mismatch

A step runs-on label does not exactly match the labels configured on any runner. Labels are matched as an exact set - a single mismatch means no runner qualifies.

No runner with the full label set is online

A runner must advertise every label the step requests. If the only runner with gpu is offline, the step has nothing to match.

How to fix it

Align step labels with a runner

Make runs-on request exactly the labels an online runner provides. self.hosted plus the system labels are implicit on every runner.

bitbucket-pipelines.yml
- step:
    runs-on:
      - self.hosted
      - linux
    script: [ ./build.sh ]

Verify runners and their labels

  1. Open Repository/Workspace settings → Runners and confirm a runner is online.
  2. Check its labels include every label the step requests.
  3. Start or relabel a runner so its set is a superset of the step’s runs-on.

How to prevent it

  • Keep a documented, consistent label scheme across runners and steps.
  • Monitor runner online status so capacity is available when builds run.
  • Avoid one-off labels that only a single, sometimes-offline runner provides.

Frequently asked questions

What causes ""No runner matched the labels""?
A step runs-on label does not exactly match the labels configured on any runner. Labels are matched as an exact set - a single mismatch means no runner qualifies.
How do I fix "No runner matched the labels"?
Make runs-on request exactly the labels an online runner provides. self.hosted plus the system labels are implicit on every runner.

Related guides

References

Latchkey auto-heals failures like this one - detected, fixed, and retried without you. Start free → 30-day trial · No credit card