[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
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

  1. claude auth login (or claude setup-token) on v2.1.267
  2. Open the generated authorize URL in any browser (tested: Safari/iPadOS, Firefox/Linux)
  3. 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-token workaround 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/callback but 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.

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗