docs: Add documentation for failed ID token creation on reused project paths
What does this MR do and why?
Updates the instructions shown when Ci::RegisterJobService blocks CI/CD ID tokens for a reused project path.
The job page message and Gitlab::Ci::OidcBurnedPathError::MESSAGE tell users to set the internal ProjectCiCdSetting#id_token_sub_claim_components attribute. The Projects API accepts ci_id_token_sub_claim_components, so copying the internal name into an API request fails. The longer error also links to a documentation section that does not exist.
- Replace
id_token_sub_claim_componentswith the Projects API parameterci_id_token_sub_claim_componentsin both messages. - Add troubleshooting steps with the exact API payload and cloud trust policy update, based on the existing project ID subject guidance.
- Link both messages to the new troubleshooting section.
References
Screenshots or screen recordings
| Before | After |
|---|---|
![]() |
![]() |
How to set up and validate locally
-
Start GDK and create a disposable project at
root/id-token-error-message. -
Add and commit this
.gitlab-ci.yml. The unmatched tag keeps the job pending:id-token-error-message: tags: - no-runner id_tokens: TEST_ID_TOKEN: aud: https://example.com script: - echo "This job should remain pending" -
Wait for pipeline creation to complete and confirm
id-token-error-messageis pending. -
From the GDK root, open the Rails console:
gdk rails console -
Mark the pending job with the internal failure reason that renders this error:
project = Project.find_by_full_path('root/id-token-error-message') job = project.builds.pending .where(name: 'id-token-error-message') .order(id: :desc) .first! job.drop!(:id_token_burned_project_path) Gitlab::Routing.url_helpers.project_job_url(project, job) -
Open the returned job URL.
-
Confirm the error names
ci_id_token_sub_claim_components, starts the value withproject_id, and includes How do I fix it?. -
Select How do I fix it? and confirm the troubleshooting section shows the Projects API payload and cloud trust policy steps.
-
Capture the failed job page with the complete error callout visible.
The Rails console step sets only the job failure reason needed to render the message. The existing Ci::RegisterJobService specs cover detection of a reused project path.
MR acceptance checklist
Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

