A pipeline job stays 'pending' indefinitely because no available runner matches the job's tags, or the assigned runner is offline.

Verify runner registration, online status, and tag matching against what the .gitlab-ci.yml expects.

Step-by-Step Guide

1

Check Settings > CI/CD > Runners to confirm a runner is online (green indicator)

2

Verify the job's tags: field matches a tag registered on an active runner

3

If using shared runners, confirm they're enabled for the project's runner settings

4

For self-hosted runners, check status directly: sudo gitlab-runner status

5

Review runner logs for registration token or network connectivity issues

6

Confirm the runner's executor (docker, shell, etc.) matches what the job requires

7

Restart the runner service if it shows online but isn't picking up jobs: sudo gitlab-runner restart

8

Check concurrent job limits aren't already maxed out in config.toml

Found an issue with this solution?

Related Topics

gitlab runner docker executor setupself hosted runner registrationgitlab ci yml tags matching