GitHub Actions: Error: Failed to create deployment (status: 404) — Ensure GitHub Pages has been enabled
The Pages deploy step cannot create a deployment because Pages is not enabled for the repository, or is not set to "GitHub Actions" as its source.
Failed to create deployment (status: 404)Ensure GitHub Pages has been enabledGet Pages site failed. Please verify that the repository has Pages enabledError: Failed to create deploymentCreate Pages site failed Meaning
actions/deploy-pages needs Pages enabled with Source = GitHub Actions, plus permissions pages: write and id-token: write, and an environment: github-pages. A 404 almost always means the setting is missing; a 403 means permissions or branch protection on the environment.
Common causes
- Pages not enabled, or source set to "Deploy from a branch" instead of "GitHub Actions"
- Missing
pages: write/id-token: writepermissions - Job lacks
environment: github-pages - Environment protection rules forbid the branch
- Repository is private on a plan without Pages
⚡ Quick fix
- Settings → Pages → Source: GitHub Actions
- Add
permissions: { pages: write, id-token: write } - Set
environment: name: github-pages
Detailed fix by platform
GitHub Actions
- Use the official trio:
actions/configure-pages,actions/upload-pages-artifact,actions/deploy-pages
Code examples
Pages deployment job
permissions:
contents: read
pages: write
id-token: write
jobs:
deploy:
environment:
name: github-pages
url: ${{ steps.dep.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- uses: actions/deploy-pages@v4
id: depHow to diagnose
- Setting — Pages source set to GitHub Actions?
- Permissions — pages and id-token write?
- Environment — github-pages allowed for this branch?
🔧 Still not fixed?
Many errors look alike. If the steps above didn’t solve it, one of these is probably what you’re facing:
Similar errors
- API rate limit exceeded GitHub Actions: HttpError: API rate limit exceeded for installation ID 123456 / secondary rate limit
- 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
- 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
Most viewed in CI/CD
- The process '/usr/bin/git' failed with exit code 128 GitHub Actions: Error: The process '/usr/bin/git' failed with exit code 128
- 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
- ComparisonError: manifest generation failed Argo CD: ComparisonError: rpc error: code = Unknown desc = Manifest generation error (cached): kustomize build failed
Other ways to find it
Where this error sits
Origin: Build & delivery. Errors that are often confused with or caused by this one (click to open):
🧠 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.
Report a correction or suggest an improvement
Last updated 25 Oct 2026