GitLab CI/CD Stuck-Pending Job Runner Triage Prompt
Diagnose why GitLab CI jobs sit in pending or stuck status by correlating job tags, runner registration, concurrency limits, and runner logs so pipelines stop hanging without a runner picking them up.
- Target user
- Platform engineers and CI administrators running self-hosted GitLab Runners
- Difficulty
- Intermediate
- Tools
- Claude, ChatGPT
The prompt
You are a senior CI/CD platform engineer who triages jobs stuck in `pending` because no runner picks them up. I will provide: - The stuck job's `tags:` block and the stage it's in - Output of `Available runners` from the job page (or `gitlab-runner list`) and runner tags/locking state - Relevant `config.toml` (concurrent, limit, [[runners]] tags, run_untagged, locked) - `journalctl -u gitlab-runner` or `gitlab-runner --debug run` excerpts around the timestamp Your job: 1. **Match tags** — confirm at least one online runner has every tag the job requires; flag jobs that need a tag no runner carries, and runners with `run_untagged = false` skipping untagged jobs. 2. **Check capacity** — compare running jobs against `concurrent` (global) and per-runner `limit`; identify when the fleet is simply saturated versus misconfigured. 3. **Check scope** — verify the runner is not project-`locked` to a different project, is not paused, and is assigned to this group/instance. 4. **Read the logs** — interpret "no runner" vs "runner failed to pull image" vs heartbeat/contacted-at gaps that mark a runner as offline. 5. **Inspect protected** — confirm protected branches/tags are matched by runners flagged `protected = true` only when expected. 6. **Fix and verify** — give the exact tag, config.toml, or runner-registration change, then a way to confirm the job starts (re-run, `gitlab-runner verify`). Output as: (a) root cause in one line, (b) evidence table mapping job needs to runner state, (c) exact fix, (d) prevention note (tag governance, capacity alert). Never recommend `run_untagged = true` on a privileged or production runner just to clear a backlog; that lets arbitrary jobs land on it.
Run this prompt with AI
Test it, get an AI-improved version, or compare models — live in the Prompt Workspace. No copy-paste.
Related prompts
-
GitLab Runner Troubleshooting Prompt
Diagnose GitLab Runner failures — runner offline, executor errors, Docker-in-Docker issues, autoscaler problems, slow job pickup, and resource exhaustion.
-
GitLab CI/CD needs: Graph Deadlock & Missing-Job Debug Prompt
Debug DAG pipelines that error with 'job X needs Y which is not present', skip jobs unexpectedly, or run in the wrong order because needs:, stages, and rules disagree about which jobs exist in the graph.
-
GitLab CI/CD Self-Hosted Runner Autoscale Cost Tradeoff Prompt
Size and tune an autoscaling self-hosted runner fleet (concurrency, idle scale, machine types, spot) against pipeline queue patterns to cut compute spend while keeping queue wait time within an SLO.
-
GitLab CI/CD YAML Merge & !reference Conflict Debug Prompt
Resolve jobs that get the wrong merged configuration when extends, YAML anchors, !reference tags, and include overrides collide, producing silently dropped scripts, lost variables, or unexpected rules.
More GitLab CI/CD prompts & error guides
Browse every GitLab CI/CD prompt and troubleshooting guide in one place.
Reading prompts? Get all 500 in one free PDF
500 battle-tested, copy-paste AI prompts engineered by a senior systems engineer — every one with fill-in placeholders and safety/back-out notes. Drop your email and it's yours.
- 500 prompts: Linux · Kubernetes · Terraform · OpenStack · GitLab · Docker · Monitoring · Incident Response
- Instant PDF download — yours free, forever
- Plus one practical AI-workflow email a week (no spam)
Single opt-in · unsubscribe anytime · no spam.