Fix GitLab CI Job Stuck on "pending"
Pipeline waits forever for a runner. The fix is almost always tags, scope, or capacity.
Problem
Your job sits in "This job is stuck because the project doesn't have any runners online assigned to it" or just hangs in `pending`.
Root cause
- Job has a tag no online runner matches.
- Runner is `Locked` to a different project.
- Group/shared runners are disabled for the project.
- Runner is online but at max concurrent jobs.
Solution
Check what runners are available
In the project: Settings → CI/CD → Runners. Confirm at least one runner is green and its tags match.
Match tags between job and runner
build:
tags: [docker, linux]
script: ./build.shOr remove tags requirement
Edit the runner and enable `Run untagged jobs`, or drop `tags:` from the job.
Frequently asked questions
Related fixes
GitLab CI/CD
5 minGitLab CI Cache Not Being Restored Between Jobs
Why your `node_modules` or `.cache/` keeps re-downloading and how to make the cache actually hit.
#cache#performance
GitLab CI/CD
3 minFix GitLab CI "jobs config should contain at least one visible job"
Lint errors on .gitlab-ci.yml and how to debug invalid pipeline syntax fast.
#yaml#validation
Weekly digest
One DevOps fix in your inbox each week
Short, practical, no fluff. Real errors, real fixes — straight from production postmortems.