[BUG] github_repo_access_denied persists despite confirmed GitHub-side access (collaborator, App install, and identity all verified)
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?
A Claude Code Remote (web) session cannot access a private GitHub repository (diana-stacktech/grants-development) even though every checkable GitHub-side permission is confirmed correct: the connected account (laurita-hash) is an accepted collaborator (verified via GitHub's own /collaborators API showing push: true, pull: true), the "Claude" GitHub App is installed on the repo owner's account with this repo explicitly selected under "Repository access," and the GitHub identity connected to the session is confirmed to genuinely be laurita-hash (via both the account's own GitHub profile and this session's own list_repos tool output). Despite this, every attempt returns github_repo_access_denied.
What Should Happen?
create_session (or adding the repo to an existing session) should succeed once a collaborator has accepted access and the GitHub App has the repo selected — both of which are confirmed true here.
Error Messages/Logs
failed to create session: GitHub repository access check failed. Either you don't have access to this repository, it isn't included in the Claude GitHub App's repository selection, or your GitHub connection has expired. Ask a repository admin for access, ask your GitHub org admin to add it (GitHub → Org settings → GitHub Apps → Claude → Repository access), or re-connect GitHub in settings. Also check whether the repository was renamed or deleted. (github_repo_access_denied)
Steps to Reproduce
As the repo owner, add a second GitHub account as a collaborator on a private repo; have that account accept the invite.
As the repo owner, install the "Claude" GitHub App on their personal GitHub account (https://github.com/settings/installations) and explicitly select the repo under "Repository access."
As the collaborator account, in Claude Code on the web, call create_session with source_url set to that repo (or attempt to add it to an existing session).
Observe github_repo_access_denied, even after disconnecting/reconnecting the GitHub connector in Claude account settings and fully logging out/in of claude.ai.
Independently confirm via GitHub's own API that the collaborator's access is accepted (push: true), ruling out a pending-invite or wrong-account explanation.
Claude Model
None
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
: N/A — encountered via Claude Code on the web (claude.ai/code), not the local CLI, so claude --version doesn't apply here. State that explicitly in the field.
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Terminal.app (macOS)
Additional Information
This is a personal (non-org) GitHub account (diana-stacktech) as the repo owner, which may be relevant — the standard advice to check "Org settings → GitHub Apps" doesn't apply since there's no organization involved.