[BUG] /ultrareview reports "GitHub App must be installed" despite correct install on the repo
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?
/ultrareview <PR#> consistently refuses to launch, claiming the Claude GitHub App is not installed on the target
repository — but the App is correctly installed on the repo. The install is visible at
https://github.com/settings/installations under "Claude," with the target repo present in the "Selected repositories"
list, and the Save button grey/inactive (saved state confirmed).
The Claude account email and the linked GitHub account email are different. Flagging this in case the backend lookup
keys off Claude account email rather than the OAuth-linked GitHub identity.
What Should Happen?
/ultrareview <PR#> should detect the correctly-installed GitHub App and proceed to run the multi-agent review on the
specified PR.
Error Messages/Logs
Ultrareview cannot launch:
The Claude GitHub app must be installed on this repository first.
https://github.com/apps/claude/installations/new
(Reproduces every invocation; no further log output exposed to the user.)
Steps to Reproduce
- Install
https://github.com/apps/claudeon a personal-account private repo, where the GitHub login email is
different from the Claude account email.
- Run
/web-setupand complete the OAuth flow. It reportsConnected as <github-login>. Opened https://claude.ai/code. - Run
/ultrareview <PR#>against any PR in that repo. - Observe the
Ultrareview cannot launcherror.
Verified install state through:
https://github.com/settings/installations— Claude entry present, repo selected, savedgh api /apps/claude— confirms app exists (slugclaude, owneranthropics)gh auth login+gh auth status— GitHub CLI authenticated as the correct account, scopes `gist, read:org, repo,
workflow`
- Revoked prior
GitHub CLIOAuth grant + re-rangh auth logincleanly — no change /web-setupre-run after revoke — succeeds;/ultrareviewstill failsgh api /repos/<owner>/<repo>/events— zeroapp/claudeactivity in event stream (onlygithub-actions)
Claude Model
Opus
Is this a regression?
I don't know
Last Working Version
Never worked for this user / repo combination — first attempt and all subsequent attempts fail identically.
Claude Code Version
Claude Code latest at time of report (Opus 4.7, 1M context)
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Terminal.app (macOS)
Additional Information
Hypotheses:
(a) Anthropic backend caches "App not installed on repo X" and is not refreshed by post-install webhooks. A cache bust on
retry, or a --force-refresh flag, would fix it.
(b) The backend keys the install lookup off the Claude account's email rather than the OAuth-linked GitHub identity. When
the two differ, the lookup misses. The install lookup should follow the GitHub user linked via /web-setup, not the Claude
account email.
Willing to share repo name, GitHub username, and Claude account ID privately (support email / DM) for debugging — kept
out of this public issue.
This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗