Skip to content
Latchkey

GitHub Actions "Resource not accessible" Setting a Commit Status

A step that sets a commit status (a custom context shown on the commit and PR) fails with a 403 because the workflow token lacks statuses: write.

What this error means

A call to create a commit status returns "Resource not accessible by integration", so the custom status context never appears on the commit or pull request.

Actions log
Error: Resource not accessible by integration
  status: 403
  POST /repos/org/repo/statuses/{sha}

Common causes

Missing statuses: write permission

Creating commit statuses requires statuses: write. It is not granted under restricted default permissions, so the call is denied.

Confusing statuses with checks

The Statuses API and the Checks API are different. Granting checks: write does not enable the statuses endpoint, and vice versa.

How to fix it

Grant statuses: write

.github/workflows/ci.yml
permissions:
  contents: read
  statuses: write
jobs:
  report:
    runs-on: ubuntu-latest

Grant the right scope for the API you use

  1. Use statuses: write for the commit Statuses API.
  2. Use checks: write for the Checks API (check runs and annotations).
  3. Scope the permission to the job that writes the status.

How to prevent it

  • Match the permission scope to the exact API the step calls.
  • Grant statuses: write only on the reporting job.
  • Keep default workflow permissions read-only and opt in per job.

Frequently asked questions

What causes "statuses write denied"?
Creating commit statuses requires statuses: write. It is not granted under restricted default permissions, so the call is denied.
How do I fix statuses write denied?
Grant statuses: write

Related guides

References

Latchkey auto-heals failures like this one - detected, fixed, and retried without you. Start free → 30-day trial · No credit card