runner registration token invalid CI/CD Origin: Build & delivery Last updated 25 Oct 2026

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.

Exact message you may see Registering runner... failedcouldn't execute POST against https://gitlab.com/api/v4/runners403 Forbidden gitlab-runner registerPANIC: Failed to register the runner
Seen on: GitLab CI Linux

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

  1. Create the runner in the UI and use its glrt- token
  2. Check --url and run gitlab-runner verify
  3. Review admin settings for runner registration

Detailed fix by platform

GitLab CI

  1. gitlab-runner register --url https://gitlab.com --token glrt-XXXX --executor docker --docker-image alpine:latest

How to diagnose

  1. Token — glrt- authentication token?
  2. URL — Correct instance?
  3. 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:

Where this error sits

Origin: Build & delivery. Errors that are often confused with or caused by this one (click to open):

Cannot connect to the Docker daemon (GitLab) — GitLab CI: Cannot connect to the Docker daemon at tcp://docker:2375. Is the docker daemon running? (CI/CD)Cannot connect to the…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 (CI/CD)failed to pull image …No space left on device (runner) — GitHub Actions: System.IO.IOException: No space left on device — the runner's disk is full (CI/CD)No space left on devi…The runner has received a shutdown signal — GitHub Actions: The runner has received a shutdown signal. This can happen when the runner service is stopped, or a manually started runner is canceled (CI/CD)The runner has receiv…This job is stuck because you don't have any active runners — GitLab CI: This job is stuck because you don't have any active runners online or available with any of these tags assigned to them (CI/CD)This job is stuck bec…Uploading artifacts: too large archive — GitLab CI: ERROR: Uploading artifacts as "archive" to coordinator... too large archive id=123 responseStatus=413 Request Entity Too Large (CI/CD)Uploading artifacts: …Waiting for a runner to pick up this job — GitHub Actions: Waiting for a runner to pick up this job… (job stays queued — No runner matching the specified labels) (CI/CD)Waiting for a runner …runner re…

Explore the map of this error Full error map →

🧠 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.