GitLab CI: ERROR: Registering runner... failed runner=abc status=couldn't execute POST against https://gitlab.com/api/v4/runners: 403 Forbidden
gitlab-runner register was rejected — the registration token is invalid or expired, or GitLab now expects an authentication token created in the UI.
Registering runner... failedcouldn't execute POST against https://gitlab.com/api/v4/runners403 Forbidden gitlab-runner registerPANIC: Failed to register the runner Meaning
Since GitLab 16 the legacy registration tokens are deprecated: create the runner under Settings → CI/CD → Runners (New project runner) and register with the generated glrt- authentication token. Also verify the URL, network access and that runner creation is allowed for the project or group.
Common causes
- Legacy registration token disabled or reset
- Wrong URL or instance
- Token for another project/group scope
- Runner creation restricted by admin
- Proxy or TLS inspection blocking the call
⚡ Quick fix
- Create the runner in the UI and use its
glrt-token - Check
--urland rungitlab-runner verify - Review admin settings for runner registration
Detailed fix by platform
GitLab CI
gitlab-runner register --url https://gitlab.com --token glrt-XXXX --executor docker --docker-image alpine:latest
How to diagnose
- Token — glrt- authentication token?
- URL — Correct instance?
- Network — Reachable?
🔧 Still not fixed?
Many errors look alike. If the steps above didn’t solve it, one of these is probably what you’re facing:
Similar errors
- Cannot connect to the Docker daemon (GitLab) GitLab CI: Cannot connect to the Docker daemon at tcp://docker:2375. Is the docker daemon running?
- failed to pull image (GitLab) GitLab CI: ERROR: Job failed: failed to pull image "registry.example.com/app:latest" with specified policies [always]: access forbidden
- No space left on device (runner) GitHub Actions: System.IO.IOException: No space left on device — the runner's disk is full
Most viewed in CI/CD
- The process '/usr/bin/git' failed with exit code 128 GitHub Actions: Error: The process '/usr/bin/git' failed with exit code 128
- Resource not accessible by integration GitHub Actions: Error: Resource not accessible by integration (403)
- ComparisonError: manifest generation failed Argo CD: ComparisonError: rpc error: code = Unknown desc = Manifest generation error (cached): kustomize build failed
Other ways to find it
Where this error sits
Origin: Build & delivery. Errors that are often confused with or caused by this one (click to open):
🧠 Still stuck? Analyze your error
Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.
💬 What worked for others
No tips yet — did something else fix this for you?
Share what worked for you
Tips are checked by an editor before they appear. Links are removed.
Report a correction or suggest an improvement
Last updated 25 Oct 2026