/ultrareview fails with 'GitHub repository access check failed' even though /schedule works on the same repo + account
Symptom
Running /ultrareview <PR#> against a private repo consistently returns:
Ultrareview could not start the remote session: GitHub repository access check failed — re-authorize GitHub in settings
Persists across multiple invocations and multiple disconnect-and-reconnect cycles from claude.ai/settings.
What works on the same repo + account
- The Claude GitHub App is installed (visible at
github.com/settings/installations) with access to the target repo. claude.ai/settingsshows the GitHub integration as Connected./schedule(cloud-agent remote routines) successfully reads and writes against the same repo using the same account/auth state.- Local
gh auth loginworks fine for terminal git operations against the repo.
So whatever /ultrareview is checking is not the same surface as the GitHub App grant, and it's not the same surface as /schedule's cloud-agent auth.
What's NOT in the user's GitHub state
- No Claude entry under
github.com/settings/applications(Authorized OAuth Apps). The user expected one to exist if/ultrareviewuses an OAuth flow, but the disconnect+reconnect cycle inclaude.ai/settingsdoes not produce one.
Reproduction
- Private repo, owner = signed-in account.
- Install the Claude GitHub App via
claude.ai/code/onboarding?magic=github-app-setupand grant access to that repo. - Confirm
/schedulecan be created against the repo (it can — works fine). - Open a PR on that repo.
- Run
/ultrareview <PR#>from Claude Code CLI.
Expected: review starts.
Actual: error above.
Diagnostic state
- Account:
HenryBenny-spec(signed in to both claude.ai and GitHub via the same browser) - Repo:
HenryBenny-spec/betting_ml(private) /ultrareviewfailure repeated 3 times across separate invocations- Disconnect + reconnect from
claude.ai/settingsbetween attempts: did not resolve
Looks like a backend token-state mismatch on the claude.ai side specifically for /ultrareview's GitHub-access check. The user has no actionable lever — both ends report "connected."
Workaround
Reviewing the PR diff manually (or via a max-thinking self-review) and merging with git merge --ff-only once satisfied. Not blocking, but loses the multi-agent independent-review gate that /ultrareview is the whole point of.
This issue has 7 comments on GitHub. Read the full discussion on GitHub ↗