Claude GitHub App stuck as "Authorized OAuth App" — never completes installation, all repo writes fail with 403

Status Closed — duplicate
Maintainer reply None cached
Activity 1 comment · opened Jul 23, 2026 · closed Aug 15, 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?

When using Claude Code on the web (claude.ai/code) with a repository attached to a session, every write operation to GitHub fails with a 403 permission error — this includes git push (via the session's local git proxy), direct file writes via the GitHub integration, and pull request creation.

Investigating further: on github.com/settings/applications, "Claude" shows up under Authorized OAuth Apps. However, it never appears under Installed GitHub Apps (github.com/settings/installations). This suggests the GitHub App installation step (which is what actually grants repository-level permissions like Contents and Pull requests) never completes — only the OAuth identity authorization does.

I tried revoking the authorization at github.com/settings/connections/applications/<app-id> and reconnecting through claude.ai/code, hoping it would retrigger the full install flow. The result was identical: still listed only under "Authorized OAuth Apps," never under "Installed GitHub Apps."

My account is a personal GitHub account (not an organization), so the Team/Enterprise admin-settings page for managing GitHub App installations doesn't apply to me.

What Should Happen?

Connecting a repository to a Claude Code on the web session should complete a full GitHub App installation on the user's account (or the relevant repository), granting the permissions the integration actually needs (at minimum: Contents: read/write, Pull requests: read/write). After that, git push, file writes, and PR creation initiated by Claude should succeed against that repository.

Error Messages/Logs

git push (through the session's local git proxy):
fatal: unable to access 'http://127.0.0.1:41729/git/<owner>/<repo>/': The requested URL returned error: 403

Direct file write via GitHub integration:
failed to create/update file: PUT https://api.github.com/repos/<owner>/<repo>/contents/README.md: 403 Resource not accessible by integration []

Pull request creation:
failed to create pull request: POST https://api.github.com/repos/<owner>/<repo>/pulls: 403 Resource not accessible by integration []

Separately, at one point the session's GitHub token expired mid-session, surfacing as:
fatal: could not read Password for 'http://local_proxy@127.0.0.1:41729': terminal prompts disabled
MCP server "github" requires re-authorization (token expired)
(This resolved after reconnecting, but the underlying 403/"not installed" issue did not.)

Steps to Reproduce

  1. Create (or use) an empty personal (non-organization) GitHub repository.
  2. Start a Claude Code on the web session with that repository attached as a source.
  3. Ask Claude to commit and push a change to the repository, or to open a pull request.
  4. Observe the write fails with "403 Resource not accessible by integration" (file writes / PRs) or plain "403" (git push through the local proxy).
  5. Check github.com/settings/applications — "Claude" is listed under Authorized OAuth Apps.
  6. Check github.com/settings/installations — "Claude" does NOT appear there.
  7. Revoke the authorization (github.com/settings/connections/applications/<id>) and reconnect the repo via claude.ai/code.
  8. Repeat steps 5–6 — the state is unchanged: still authorized, never installed.

Claude Model

None

Is this a regression?

I don't know

Last Working Version

_No response_

Claude Code Version

Claude Code on the web (claude.ai/code)

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

Terminal.app (macOS)

Additional Information

As a workaround, I exported the local commit as a git bundle and pushed it manually from my own machine using my personal GitHub credentials (which do have push access to the repo) — that succeeded without issue, confirming this is specific to the Claude GitHub App's own installation/permission state, not a problem with the repository or my account's general GitHub permissions.

Repository involved: Rinntelligence/Finnhelper (public).

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗