GitLab CI job stuck — no matching runner

GitLab CI could not find an available runner that matches the job's tag requirements or the project has no registered runners at all.

gitlab-no-runner high confidence ci

Matched signals

  • This job is stuck because the project doesn't have any runners
  • This job is stuck because you don't have any active runners
  • no runners available
  • job is stuck
  • runner not found
  • waiting for a runner

GitLab CI job stuck — no matching runner

What this failure means

GitLab CI could not find an available runner that matches the job’s tag requirements or the project has no registered runners at all.

Symptoms

Faultline looks for one or more of these log fragments:

This job is stuck because the project doesn't have any runners
This job is stuck because you don't have any active runners
no runners available
job is stuck
runner not found
waiting for a runner

Diagnosis

GitLab CI could not find an available runner that matches the job’s tag requirements or the project has no registered runners at all.

Fix steps

  1. Check runner availability: Settings > CI/CD > Runners.
  2. Ensure at least one runner is online and not paused.
  3. If the job requires specific tags, confirm at least one runner has those tags.
  4. For group or instance runners, verify they are enabled for this project.
  5. Start a new runner with gitlab-runner register if none are available.

Validation

  • Re-run the failing workflow step.
  • Confirm the original failure signature for GitLab CI job stuck — no matching runner is gone.

Why it matters

Jobs get stuck for one of three reasons: no runners are registered for the project or group, all matching runners are offline or busy, or the job requests tags that no runner provides.

Prevention

  • Set up auto-scaling runners so capacity adjusts to queue depth.
  • Monitor runner availability and alert when all runners go offline.
  • Avoid over-tagging jobs with rare runner tags that bottleneck the pipeline.

How Faultline detects it

Use faultline explain gitlab-no-runner to see the full playbook.

faultline analyze build.log
faultline explain gitlab-no-runner

Generated from playbooks/bundled/log/ci/gitlab-no-runner.yaml. Do not edit directly.

Try it on your own failed log

$ faultline analyze failed.log
Want this across every CI run? Faultline Teams tracks recurring failures across all your repos and surfaces patterns in a shared dashboard.