Preflight Checklist
What's Wrong?
Rate limit quota is pooled at the organization level (organizationUuid), not per-account. All accounts sharing the same organizationUuid consume from a single quota pool — using one account exhausts the limit for all others in the same organization.
Root cause: claude login does not clear the oauthAccount field in .claude.json, causing cross-contamination of account UUIDs across config directories. These leaked UUIDs are likely sent to the backend and trigger org-level grouping. See detailed analysis in the comment below.
cc @dliedke
Evidence
I'm on the Max plan ($200/mo) and checked my accounts via the OAuth usage API (/api/oauth/usage) and local config (oauthAccount.organizationUuid in .claude.json):
| organizationUuid |
Accounts |
Session |
Weekly |
Behavior |
34d83544-a7e... |
Account A, B, C, D, E |
100% (identical) |
83% (identical) |
Shared — same utilization & reset times |
1b8fb384-9be... |
Account F |
0% |
100% |
Independent |
c2b1b50a-454... |
Account G |
0% |
100% |
Independent |
1d6df450-33f... |
Account H |
0% |
100% |
Independent |
- Accounts under the same org show identical utilization percentages and reset times
- Accounts under different orgs have fully independent quotas
- Billing method and phone number are not the grouping factor (verified: different cards and phone numbers within the same org group)
What Should Happen?
Each Max subscription account should have its own independent rate limit quota. Per-organization pooling is unexpected and undocumented — users paying for separate subscriptions will find them silently linked if they end up in the same organization.
At minimum, this behavior should be clearly documented so users understand what they're paying for.
How to Check Your Own Grouping
# Check organizationUuid in your config:
python3 -c "import json; d=json.load(open('$HOME/.claude/.claude.json')); print(d['oauthAccount']['organizationUuid'])"
# Or check the API response header 'anthropic-organization-id'
Related Issues
Claude Code Version
2.1.89
Preflight Checklist
What's Wrong?
Rate limit quota is pooled at the organization level (
organizationUuid), not per-account. All accounts sharing the sameorganizationUuidconsume from a single quota pool — using one account exhausts the limit for all others in the same organization.Root cause:
claude logindoes not clear theoauthAccountfield in.claude.json, causing cross-contamination of account UUIDs across config directories. These leaked UUIDs are likely sent to the backend and trigger org-level grouping. See detailed analysis in the comment below.cc @dliedke
Evidence
I'm on the Max plan ($200/mo) and checked my accounts via the OAuth usage API (
/api/oauth/usage) and local config (oauthAccount.organizationUuidin.claude.json):34d83544-a7e...1b8fb384-9be...c2b1b50a-454...1d6df450-33f...What Should Happen?
Each Max subscription account should have its own independent rate limit quota. Per-organization pooling is unexpected and undocumented — users paying for separate subscriptions will find them silently linked if they end up in the same organization.
At minimum, this behavior should be clearly documented so users understand what they're paying for.
How to Check Your Own Grouping
Related Issues
Claude Code Version
2.1.89