GitHub Integration connector grants OAuth access but all write operations fail with "403 Resource not accessible by integration"

Status Fixed / completed
Reported on v2.1.218
Maintainer reply None cached
Activity 5 comments · opened Jul 24, 2026 · closed Aug 10, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

After connecting the GitHub Integration connector (claude.ai → Settings → Connectors), Claude Code sessions can read from a repository (nilshil-ai/Projekt-YT) but every write operation — via git push, the GitHub content-write API, and even an unrelated admin-read endpoint — fails with 403 Resource not accessible by integration. This persists even after a full disconnect, revoke on GitHub's side, and fresh OAuth re-authorization. Blocks all git push / file-write operations from Claude Code sessions to this repository, despite the integration appearing fully connected and the account having full underlying GitHub permissions. Makes it impossible for the assigned session to commit work back to the user's repo without a manual workaround (creating files directly through github.com).

What Should Happen?

Since the connector shows as "Connected" and the account has full push rights to the repo (confirmed via can_push: true in the list_repos tool's response for this exact repo), write operations initiated by the session should succeed.

Error Messages/Logs

403 Resource not accessible by integration

Steps to Reproduce

  1. Create a new, empty public GitHub repository under a personal account.
  2. In a Claude Code session, connect the GitHub Integration connector (claude.ai → Settings → Connectors) and give it access to that repository.
  3. Attempt to write a file to the new repo — either via git push (through the session's local git proxy) or via the GitHub MCP tool create_or_update_file / push_files, targeting a new branch.
  4. Observe the write fails with 403 Resource not accessible by integration.
  5. Disconnect the GitHub Integration connector, revoke it on GitHub's side too (github.com/settings/applications → Authorized OAuth Apps/GitHub Apps tab → Revoke), then reconnect from claude.ai's Connectors panel and complete the fresh OAuth "Authorize" prompt.
  6. Retry step 3 — the write still fails with the identical 403 Resource not accessible by integration, with no change in behavior.

Claude Model

Sonnet (default)

Is this a regression?

Yes, this worked in a previous version

Last Working Version

_No response_

Claude Code Version

2.1.218 (Claude Code)

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

Terminal.app (macOS)

Additional Information

_No response_

View original on GitHub ↗

3 Comments

saulzetler · 1 month ago

Confirming the same issue on my end (private repo, personal use). Additional diagnostic data point: checked github.com/settings/installations — no GitHub App is installed at all (there isn't one to install; Marketplace only shows GitHub Actions for Claude/Anthropic). "Claude" only appears under Authorized OAuth Apps. Revoked there directly and reconnected — no scope-selection screen appeared on reauthorization, so there's no way to confirm or request broader scope. Every write path (git push, branch creation, content API) 403s identically, same as reported here.

TillBerlin · 27 days ago

Hitting the same issue on a Claude Code web session (personal account, repo
TillBerlin/Stop-Light-Cars). Read access works fine (get_me,
list_branches, get_file_contents, git fetch), every write path fails:

  • git push through the session's local git relay:

fatal: unable to access '.../TillBerlin/Stop-Light-Cars/': The requested
URL returned error: 403
, with the relay's own message being
Permission to TillBerlin/Stop-Light-Cars.git denied to TillBerlin — i.e.
permission denied to the repo owner's own account.

  • mcp__github__push_files / mcp__github__create_branch:

403 Resource not accessible by integration on
POST /repos/.../git/refs.

Disconnecting and reconnecting the connector didn't help.

One extra data point that might narrow this down: on GitHub's side,
github.com/settings/installations ("Installed GitHub Apps") shows no
Claude entry at all for my account — Claude only appears under
github.com/settings/apps/authorizations ("Authorized GitHub Apps"), which
is revoke-only with no repo/permission picker. A separate GitHub App
(OpenAI's Codex) on the same account does show up under Installed GitHub
Apps with a working Configure button and repo-scoped write permissions. That
suggests the Claude connector, for at least some accounts, is completing an
OAuth authorization but never an actual GitHub App installation
which would explain why the token has no contents: write / git refs
scope no matter how many times it's reconnected.

nadiameldec · 27 days ago

+1, hitting the same thing on a different (private, personal account) repo. Connector shows "Connected" and GitHub confirms full push rights on the repo, but every write — git push through the session's proxy and the content-write API — returns 403 Resource not accessible by integration; reads work fine. Tried disconnecting the connector, revoking access on GitHub's side, and reconnecting with a fresh OAuth authorization — identical error, no change. Current workaround: creating/updating files manually through github.com. Still reproducing as of early August 2026.

Showing cached comments. Read the full discussion on GitHub ↗