[BUG] Native Windows installer uses wrong OAuth client ID for accounts with both Max subscription and Console org — always authenticates as Claude API instead of subscription
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?
Claude Code (native Windows installer) always authenticates via Claude API billing instead of the Max subscription, even after a clean /logout + /login cycle. The OAuth flow is sent to platform.claude.com with a Console client ID, not claude.ai.
The startup header reads: Opus 4.6 with high effort · Claude API · redacted@gmail.com's Organization
Running /status shows Auth token: CLAUDE_CODE_OAUTH_TOKEN but /usage reports: _"/usage is only available for subscription plans."_
Credentials in ~/.claude/.credentials.json correctly show subscriptionType: max and rateLimitTier: default_claude_max_5x — so the token itself is fine, but Claude Code treats the session as API-billed regardless.
Root cause identified
When /login is triggered, Claude Code opens the following OAuth URL:
https://platform.claude.com/oauth/authorize?code=true
&client_id=9d1c250a-e61b-44d9-88ed-5944d1962f5e
&redirect_uri=https%3A%2F%2Fplatform.claude.com%2Foauth%2Fcode%2Fcallback
&scope=org%3Acreate_api_key+user%3Aprofile+user%3Ainference+...
The client_id=9d1c250a-e61b-44d9-88ed-5944d1962f5e belongs to the Claude Console / API platform, not to the claude.ai subscription OAuth app. The redirect URI also points to platform.claude.com.
Manually replacing both the base URL and redirect_uri to claude.ai fails with: _"Redirect URI https://claude.ai/oauth/code/callback is not supported by client."_ — confirming the client ID itself is registered only for Console redirect URIs.
The Console login page shown during the flow includes the hint banner _"Have a Pro or Max plan? Login with your chat account instead"_ — clicking it shows the correct claude.ai authorization screen, but then fails with _"Redirect URI https://platform.claude.com/oauth/code/callback is not supported by client."_
Hypothesis
When an account has both a claude.ai Max subscription and an Anthropic Console organization on the same email, the native Windows installer selects the Console OAuth client ID instead of the subscription client ID.
Workarounds attempted — none successful
- Clean
/logout+/login - Deleting
~/.claude.jsonand~/.claude/.credentials.json - Logging out of Console in the browser before authenticating
- Using an incognito window for the OAuth flow
- Manually modifying the OAuth URL domain and redirect_uri
What Should Happen?
Expected behavior
Claude Code should use the claude.ai OAuth client ID and redirect URI for accounts with an active Pro/Max subscription, regardless of whether the same account also has a Console org.
Error Messages/Logs
## Actual behavior
Claude Code always uses the Console OAuth client ID (`9d1c250a-e61b-44d9-88ed-5944d1962f5e`) and `platform.claude.com` redirect URI, resulting in API billing instead of subscription usage.
Steps to Reproduce
Steps to reproduce
- Have an account with an active Claude Max subscription on
claude.ai - Have the same account also linked to an Anthropic Console organization (API billing)
- Install Claude Code using the native Windows installer
- Run
/logoutthen/login— observe the OAuth URL generated - Check that
client_idin the URL is9d1c250a-e61b-44d9-88ed-5944d1962f5eand base domain isplatform.claude.com - Complete the auth flow — Claude Code header shows
Claude APInot subscription
At least that is the exact way for me and it just won't let me in.
Claude Model
Other
Is this a regression?
I don't know
Last Working Version
2.1.84 (Claude Code)
Claude Code Version
2.1.84 (Claude Code)
Platform
Anthropic API
Operating System
Windows 11
Terminal/Shell
Windows Terminal
Additional Information
- No
ANTHROPIC_API_KEYorANTHROPIC_AUTH_TOKENenv vars set (verified at session, user, and machine level) - No
apiKeyentries insettings.jsonorsettings.local.json ~/.claude/.credentials.jsonshows correctsubscriptionType: maxafter login~/.claude.jsonshowed"hasAvailableSubscription": false— clearing it did not fix the issue- Claude Code version 2.1.84 with
autoUpdates: false(native install)
This issue has 6 comments on GitHub. Read the full discussion on GitHub ↗