[BUG] v2.1.267: OAuth login fails — redirect_uri /oauth/code/callback rejected by server
Status Open
Reported on v2.1.267
Maintainer reply None cached
Workaround ✓ Mentioned in description ↑
Activity 2 comments · opened Sep 9, 2026
Summary
claude auth login and claude setup-token are completely broken on v2.1.267. The OAuth server rejects the redirect URI before the user ever sees an Authorize button, blocking all new logins for Claude subscription users.
Error
Redirect URI https://platform.claude.com/oauth/code/callback is not supported by client.
Repro
claude auth login(orclaude setup-token) on v2.1.267- Open the generated authorize URL in any browser (tested: Safari/iPadOS, Firefox/Linux)
- Immediately get the rejection error — no login form, no Authorize button
The generated URL:
https://claude.com/cai/oauth/authorize?code=true&client_id=9d1c250a-e61b-44d9-88ed-5944d1962f5e&response_type=code&redirect_uri=https%3A%2F%2Fplatform.claude.com%2Foauth%2Fcode%2Fcallback&scope=org%3Acreate_api_key+user%3Aprofile+user%3Ainference+user%3Asessions%3Aclaude_code+user%3Amcp_servers+user%3Afile_upload&code_challenge=...&code_challenge_method=S256&state=...
Note the redirect_uri is already /oauth/code/callback (the "correct" path per #88877), yet the server still rejects it.
Environment
- Version: 2.1.267 (latest)
- OS: Linux (Ubuntu)
- Network: Reproduced from multiple locations/networks (Portugal, via Tailscale)
- Browsers tested: Safari (iPadOS), Firefox (Linux)
- Auth method: Claude Max subscription (OAuth), not API key
Impact
- All new logins are blocked for subscription users
- No workaround exists (server rejects before any user interaction)
setup-tokenworkaround from #88877 does not apply since the URL already has the correct path
Related
- #88877 — same client_id, same redirect_uri mismatch pattern (filed Aug 22, still open)
- This appears to be a regression or incomplete fix: the CLI now sends
/oauth/code/callbackbut the server still doesn't accept it for this client_id
Expected Behavior
The authorize URL should load a login page (or Authorize button if already authenticated), allowing the user to complete the OAuth flow.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗