# GitLab CI: ERROR: Registering runner... failed runner=abc status=couldn't execute POST against https://gitlab.com/api/v4/runners: 403 Forbidden

**Code:** `runner registration token invalid` · **Category:** CI/CD · **Seen on:** GitLab CI, Linux

`gitlab-runner register` was rejected — the registration token is invalid or expired, or GitLab now expects an authentication token created in the UI.

## 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?

---
Source: [WhatIsMyError](https://whatismyerror.com/errors/cicd/gitlab-runner-registration-failed)
