[BUG] GitHub push permission (403) in Claude Code Remote session - read only despite repo being added as source

Status Open
Maintainer reply None cached
Activity 4 comments · opened Jul 14, 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?

I’m using a Claude Code Remote/Cowork session with the GitHub repositories Colt-Action/skill-manager and Colt-Action/skill_manager_v2 added as sources.
Claude can read from both repos fine (git ls-remote, git clone, file reads all work), but every git push and every GitHub API write (e.g. via the GitHub MCP tool push_files) fails with:
403 Resource not accessible by integration (via the API) / 403 from the internal git proxy (git push)

I checked:
• GitHub → Settings → Installed GitHub Apps: no app installed
• GitHub → Settings → Authorized OAuth Apps: nothing relevant
• Organization-level installed apps: not applicable, Colt-Action is a personal account, not an org
• claude.ai → Settings → Connectors → GitHub Integration: reconnected (disconnect + reconnect), no change
• claude.ai → Claude Code environment settings (Update cloud environment dialog): no repo-level read/write permission toggle found there

Could you help me find where write access for this session/environment is configured, or confirm whether this is expected behavior and how to enable push access?
Session/environment context: Claude Code Remote (Cowork), repos added via “add_repo”, branch claude/skill-manager-mvp-caom6x.

What Should Happen?

Claude should be able to git push and write to the connected GitHub repository (read access works fine, write access fails with a 403 error - see Error Messages/Logs below).

Error Messages/Logs

1. Start a Claude Code Remote (Cowork) session with a GitHub repo added as a source (read+write expected)
2. Ask Claude to commit and push a change to the repo
3. git push fails with: fatal: unable to access '...': The requested URL returned error: 403
4. GitHub API write calls (e.g. push_files via the GitHub MCP tool) fail with: 403 Resource not accessible by integration
5. Read access works fine (git ls-remote, git clone, file reads all succeed)

Steps to Reproduce

git push:
fatal: unable to access 'http://127.0.0.1:41729/git/<owner>/<repo>/': The requested URL returned error: 403

GitHub API (via MCP push_files):
failed to initialize repository: failed to create initial file: PUT https://api.github.com/repos/<owner>/<repo>/contents/README.md: 403 Resource not accessible by integration []

Claude Model

Sonnet (default)

Is this a regression?

I don't know

Last Working Version

_No response_

Claude Code Version

Claude Code Remote (Web session)

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

Terminal.app (macOS)

Additional Information

_No response_

View original on GitHub ↗

4 Comments

jorgeagsantoy-svg · 1 month ago

Same issue here — Claude Code Remote session, repo jorgeagsantoy-svg/index.html (and a brand-new repo app-leads-linkedin created specifically to rule out per-repo permissions). Same 403 "Resource not accessible by integration" via both git push and GitHub MCP tools (push_files, create_or_update_file). Reconnecting the GitHub connector didn't help either.

rodrigolagnraux-alt · 1 month ago

Same issue here. Confirmed read-only across every write path tested:

  • git push (via session's local git proxy) → 403
  • create_branch → 403 Resource not accessible by integration
  • push_files → 403 Resource not accessible by integration
  • create_or_update_file (correct SHA, real content) → 403 Resource not accessible by integration
  • create_pull_request → 403 Resource not accessible by integration

Disconnecting and reconnecting the GitHub connector (Settings → Connectors) did not help — same error immediately after reconnecting.

On the GitHub side: nothing shows up under github.com/settings/installations (Installed GitHub Apps) or Authorized OAuth Apps tied to Claude/Anthropic, so there's nothing for the account owner to grant/adjust permissions on.

Repo: public repo on a personal GitHub account.

Colt-Action · 1 month ago

Hi rodrigo,

thank you for helping me, but until now it did not work, correct?

Anything I can do now?

Sent with Proton Mail secure email.

On Friday, 24 July 2026 at 5:04 PM, rodrigolagnraux-alt @.***> wrote:

rodrigolagnraux-alt left a comment (anthropics/claude-code#77482) Same issue here. Confirmed read-only across every write path tested: - git push (via session's local git proxy) → 403 - create_branch → 403 Resource not accessible by integration - push_files → 403 Resource not accessible by integration - create_or_update_file (correct SHA, real content) → 403 Resource not accessible by integration - create_pull_request → 403 Resource not accessible by integration Disconnecting and reconnecting the GitHub connector (Settings → Connectors) did not help — same error immediately after reconnecting. On the GitHub side: nothing shows up under github.com/settings/installations (Installed GitHub Apps) or Authorized OAuth Apps tied to Claude/Anthropic, so there's nothing for the account owner to grant/adjust permissions on. Repo: public repo on a personal GitHub account. — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>
thothage1 · 9 days ago

Confirming this on another repo — same symptoms, same dead ends. Adding two
data points that weren't in the thread yet:
Environment: Claude Code on the web (cloud/remote session), repo
thothage1/unshakeable-financial-website (public, personal account, not
an org). Container version 2.1.238.
Same failure signature:

  • git pushfatal: unable to access '...': 403
  • GitHub MCP push_files / create_branch → `403 Resource not accessible

by integration`

  • Retried 5x with backoff — not transient.

New finding #1 — the account-level tooling actively contradicts the 403.
This session's own repo-listing tool reports "can_push": true for the
exact repo the push fails on. So whatever grants that flag isn't the same
credential actually used for the git/API write path.
New finding #2 — checked all three GitHub authorization surfaces, not
just two.
In addition to "Installed GitHub Apps" (empty) and "Authorized
OAuth Apps" (a "Claude" entry with only identity-level permissions, no
repo scope), I also checked "Authorized GitHub Apps" — a third,
separate tab under github.com/settings/applications. It does show a
"Claude" entry (developed by anthropics), but its detail page explicitly
says "Claude has not been installed on any accounts you have access to,"
and its description identifies it as the PR/Issues auto-response
integration (Claude Code GitHub Actions), unrelated to the web session
integration. So all three surfaces are dead ends, not just the two
mentioned above.
Also tried revoking the OAuth grant and forcing a fresh reconnect via
claude.ai/customize/connectors?auth_start=github&auth_start_force=1
no new consent screen appeared, and push still failed identically after.
Would be great to get a maintainer read on where write-scope provisioning
for these sessions is actually supposed to happen, since none of the
obvious GitHub-side settings represent it.