[BUG] rateLimitTier set to "default_claude_ai" instead of "default_claude_pro" — CLI treating Pro subscription as API token auth, immediate "API Error: Rate limit reached" with zero usage
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?
Critical Distinction: This Is NOT the Same as #38335
Issue #38335 describes limits being exhausted abnormally fast, with users receiving:
"Claude AI usage limit reached, please try again after [time]"
That error message proves Claude Code correctly recognizes those users are on a subscription plan — it just burns through quota too fast.
My issue is fundamentally different. I receive:
"API Error: Rate limit reached"
This is a raw API-tier error, not a subscription quota message. Claude Code is not recognizing my Pro subscription at all. It is behaving as if I am an API token user with an exhausted API credit balance — which I am not. My usage limits are verifiably not reached: both the claude.ai web app and desktop app confirm substantial quota remaining, and I have been actively chatting on the web app throughout this entire troubleshooting session.
The root cause is visible in .credentials.json:
subscriptionType: "pro"✅ — subscription is recognizedrateLimitTier: "default_claude_ai"❌ — wrong tier assigned; should be"default_claude_pro"
The backend is completing OAuth successfully and identifying the subscription type, but assigning the wrong rate limit tier. This causes every single request to be rejected with a raw API error before any quota is even checked.
---
What's Wrong?
After OAuth login with a Claude Pro subscription, rateLimitTier in .credentials.json is assigned "default_claude_ai" instead of "default_claude_pro". This causes Claude Code to treat every request as if it is an API token call with an exhausted balance, returning "API Error: Rate limit reached" immediately on every prompt regardless of actual usage.
This is happening simultaneously across multiple separate Pro accounts on multiple separate WSL installs, which strongly indicates a server-side regression in the OAuth token exchange or rate limit tier assignment — not a client-side or per-account issue.
---
Credentials State (Sanitized)
Actual (broken):
{
"claudeAiOauth": {
"subscriptionType": "pro",
"rateLimitTier": "default_claude_ai"
}
}
Expected:
{
"claudeAiOauth": {
"subscriptionType": "pro",
"rateLimitTier": "default_claude_pro"
}
}
Environment
- Claude Code Version: 2.1.83
- OS: Windows 11 with WSL2 (Ubuntu)
- Shell: bash (WSL)
- Auth method: Claude.ai OAuth (browser flow)
- Subscription: Claude Pro (annually billed)
- Accounts affected: Multiple separate Pro accounts
- Machines affected: Multiple separate WSL2 installs simultaneously
- Issue persists after: Multiple logout/login cycles,
claude update, native installer migration (claude install)
---
Related Issues
- #38335 — Different issue: subscription quota exhausted too fast; error message correctly identifies subscription. My issue: wrong rate limit tier assigned, raw API error, zero usage consumed.
- #29579 — Partial overlap: same raw API error, but root cause (
rateLimitTiermisconfiguration) not identified in that report - #37246 — Partial overlap: same symptom on Pro after credential wipe, but again
rateLimitTiernot identified as root cause
What Should Happen?
rateLimitTier should be set to "default_claude_pro" for Pro subscribers after OAuth login. Requests should succeed within the Pro plan quota. If quota is genuinely exhausted, the friendly subscription quota message with reset time should appear — not a raw API error.
Error Messages/Logs
Steps to Reproduce
- Have an active Claude Pro subscription
- Install Claude Code 2.1.83 on WSL2 (Windows Subsystem for Linux)
- Run
claude /loginand complete browser OAuth flow - Claude Code header correctly shows
Opus 4.6 (1M context) · Claude Pro✅ - Run
claude /status— showsLogin method: Claude Pro Account✅ - Check
~/.claude/.credentials.json— showssubscriptionType: "pro"butrateLimitTier: "default_claude_ai"❌ - Send any message
- Immediately receive
API Error: Rate limit reached— not the subscription quota message - Confirm on claude.ai web app that session and weekly usage are well within limits ✅
- Issue persists across repeated logout/login cycles
Claude Model
None
Is this a regression?
Yes, this worked in a previous version
Last Working Version
_No response_
Claude Code Version
Claude Code (2.1.83)
Platform
Anthropic API
Operating System
Windows
Terminal/Shell
WSL (Windows Subsystem for Linux)
Additional Information
This bug has caused approximately two full days of lost productivity across multiple work sessions this week for a paying Pro customer running a company. The issue is recurring and reproducible. Support tickets submitted through official channels have gone unanswered.
This affects multiple separate Pro accounts on multiple separate WSL installs simultaneously, meaning this is not an isolated account issue — it is likely a server-side regression affecting a population of WSL-based Pro subscribers.
This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗