Unable to get ACTIONS_ID_TOKEN_REQUEST_URL CI/CD Origin: Build & delivery Last updated 25 Oct 2026

GitHub Actions: Error: Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable

A step tried to get an OIDC token (for AWS, Azure, GCP, Vault) but the job was not granted id-token: write permission.

Exact message you may see Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variableUnable to get ACTIONS_ID_TOKEN_REQUEST_TOKENid-token: write permission missingError: Unable to get ACTIONS_ID_TOKEN_REQUEST_URL
Seen on: GitHub Actions

Meaning

OIDC tokens are only issued when the workflow or job sets permissions: id-token: write. Reusable workflows and fork pull requests may not receive the token at all. When you set permissions at all, unlisted permissions become none, so remember contents: read too.

Common causes

  • permissions: id-token: write missing at workflow or job level
  • Permissions block overriding defaults without id-token
  • Pull request from a fork (OIDC not available)
  • Calling a reusable workflow without passing permissions
  • Self-hosted GitHub Enterprise Server without OIDC enabled

⚡ Quick fix

  1. Add id-token: write (and contents: read) in permissions
  2. Do not use OIDC on fork PR jobs
  3. Pass permissions down when calling reusable workflows

Detailed fix by platform

GitHub Actions

  1. Job-level: permissions: { id-token: write, contents: read }

Code examples

Permissions for OIDC

yaml
jobs:
  deploy:
    runs-on: ubuntu-latest
    permissions:
      id-token: write       # required to request the OIDC token
      contents: read
    steps:
      - uses: actions/checkout@v4

How to diagnose

  1. Permissions — Is id-token: write set for this job?
  2. Source — Fork PR?
  3. Reusable — Passed to the called workflow?

🔧 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):

API rate limit exceeded — GitHub Actions: HttpError: API rate limit exceeded for installation ID 123456 / secondary rate limit (CI/CD)API rate limit exceed…Cache not found / Unable to reserve cache — GitHub Actions: Cache not found for input keys: npm-Linux-abc123 / Failed to save: Unable to reserve cache with key, another job may be creating this cache (CI/CD)Cache not found / Una…couldn't find remote ref (checkout) — GitHub Actions: fatal: couldn't find remote ref refs/heads/feature — The process '/usr/bin/git' failed with exit code 1 (actions/checkout) (CI/CD)couldn't find remote …Credentials could not be loaded — GitHub Actions: Error: Credentials could not be loaded, please check your action inputs: Could not load credentials from any providers (CI/CD)Credentials could not…Failed to create deployment (Pages not enabled) — GitHub Actions: Error: Failed to create deployment (status: 404) — Ensure GitHub Pages has been enabled (CI/CD)Failed to create depl…Resource not accessible by integration — GitHub Actions: Error: Resource not accessible by integration (403) (CI/CD)Resource not accessib…secrets not available in pull requests from forks — GitHub Actions: secret is empty on pull_request from a fork or Dependabot (Secrets are not passed to workflows triggered by a fork) (CI/CD)secrets not available…sts:AssumeRole denied — is not authorized to perform: sts:AssumeRole on resource: arn:aws:iam::...:role/... (AWS)sts:AssumeRole deniedUnable to…

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.