{
  "id": "cicd/gitlab-ci-runner-registration-token-expired",
  "signature": "ERROR: Registration token is expired. Please generate a new registration token on the GitLab admin area.",
  "signature_zh": "错误：注册令牌已过期。请在 GitLab 管理区域生成新的注册令牌。",
  "regex": "Registration token is expired\\. Please generate a new registration token",
  "domain": "cicd",
  "category": "auth_error",
  "subcategory": null,
  "root_cause": "The GitLab Runner registration token used to register the runner has expired, typically due to a token rotation policy or manual revocation in GitLab settings.",
  "root_cause_type": "generic",
  "root_cause_zh": "用于注册运行器的 GitLab Runner 注册令牌已过期，通常是由于令牌轮换策略或在 GitLab 设置中手动撤销。",
  "versions": [
    {
      "version": "GitLab 16.8",
      "introduced": null,
      "deprecated": null,
      "removed": null,
      "behavior_change": null,
      "status": "active"
    },
    {
      "version": "GitLab Runner 16.7.0",
      "introduced": null,
      "deprecated": null,
      "removed": null,
      "behavior_change": null,
      "status": "active"
    }
  ],
  "os_specific": {},
  "dead_ends": [
    {
      "action": "",
      "why_fails": "The token is stored in the runner's config.toml and is expired on the server side; restarting does not refresh it.",
      "fail_rate": 0.95,
      "condition": "",
      "sources": []
    },
    {
      "action": "",
      "why_fails": "Manually editing the token without proper registration can cause authentication failures; GitLab expects the token to be generated and associated with a specific runner.",
      "fail_rate": 0.8,
      "condition": "",
      "sources": []
    }
  ],
  "workarounds": [
    {
      "action": "Generate a new registration token from GitLab admin area: go to Admin > CI/CD > Runners, click 'Register a runner', copy the new token. Then re-register the runner: `sudo gitlab-runner unregister --name my-runner && sudo gitlab-runner register --url https://gitlab.com --registration-token NEW_TOKEN --non-interactive --executor docker --description my-runner`.",
      "success_rate": 0.95,
      "how": "Generate a new registration token from GitLab admin area: go to Admin > CI/CD > Runners, click 'Register a runner', copy the new token. Then re-register the runner: `sudo gitlab-runner unregister --name my-runner && sudo gitlab-runner register --url https://gitlab.com --registration-token NEW_TOKEN --non-interactive --executor docker --description my-runner`.",
      "condition": "",
      "sources": []
    },
    {
      "action": "If using GitLab CI/CD variables, update the `CI_REGISTRATION_TOKEN` variable in the project or group settings with the new token, then trigger a pipeline that re-registers the runner automatically.",
      "success_rate": 0.85,
      "how": "If using GitLab CI/CD variables, update the `CI_REGISTRATION_TOKEN` variable in the project or group settings with the new token, then trigger a pipeline that re-registers the runner automatically.",
      "condition": "",
      "sources": []
    }
  ],
  "workarounds_zh": [
    "Generate a new registration token from GitLab admin area: go to Admin > CI/CD > Runners, click 'Register a runner', copy the new token. Then re-register the runner: `sudo gitlab-runner unregister --name my-runner && sudo gitlab-runner register --url https://gitlab.com --registration-token NEW_TOKEN --non-interactive --executor docker --description my-runner`.",
    "If using GitLab CI/CD variables, update the `CI_REGISTRATION_TOKEN` variable in the project or group settings with the new token, then trigger a pipeline that re-registers the runner automatically."
  ],
  "transition_graph": {
    "leads_to": [],
    "preceded_by": [],
    "frequently_confused_with": []
  },
  "official_doc_url": "https://docs.gitlab.com/runner/register/",
  "official_doc_section": null,
  "error_code": null,
  "verification_tier": "ai_generated",
  "confidence": 0.84,
  "fix_success_rate": 0.92,
  "resolvable": "true",
  "first_seen": "2024-04-05",
  "last_confirmed": "2024-06-01",
  "last_updated": "2024-06-01",
  "evidence_count": 1,
  "tags": [],
  "locale": "en",
  "aliases": []
}