[BUG] Claude Code recognizes active Max subscription account as API account

Resolved 💬 2 comments Opened Mar 16, 2026 by noah-vh Closed Mar 16, 2026

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 is treating my account as an API account despite being logged in via OAuth with an active Max subscription. This affects the entire session, the header shows "Claude API", subscription-gated features are blocked, and the core subscription recognition is broken throughout.

<img width="546" height="90" alt="Image" src="https://github.com/user-attachments/assets/9e6f6bc0-b895-480b-a110-5cc577a26b66" />

What Should Happen?

Claude Code should recognize an active Max subscription oauth login as a subscription account, not an API account

Error Messages/Logs

Remote Control is not enabled for your account; --rc flag ignored.

Steps to Reproduce

{
"loggedIn": true,
"authMethod": "oauth_token",
"apiProvider": "firstParty"
}

  1. Open a new session — header shows "Sonnet 4.6 · Claude API" instead of "Claude Max"
  2. Check ~/.claude.json — hasAvailableSubscription is false despite billingType: stripe_subscription
  3. Repeat /logout → /login multiple times — hasAvailableSubscription remains false
  4. Subscription-gated features blocked (e.g. --remote-control returns "not enabled for your account")

Claude Model

Not sure / Multiple models

Is this a regression?

Yes, this worked in a previous version

Last Working Version

_No response_

Claude Code Version

2.1.76 (Claude Code)

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

Terminal.app (macOS)

Additional Information

The key diagnostic detail: ~/.claude.json correctly shows billingType: stripe_subscription
with a subscription active since October 2024, but hasAvailableSubscription: false —
this persists through multiple logout/login cycles, indicating the OAuth flow is not
updating subscription status from the server after authentication.

What's been ruled out:

  • ANTHROPIC_API_KEY env var — not set
  • Shell config files (~/.zshrc, ~/.zprofile, etc.) — no key found
  • ~/.claude/settings.json — no API key override
  • macOS Keychain — no stale Claude/Anthropic entries
  • .env files in home directory — no Anthropic keys
  • CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC — not set (fix from #33119 doesn't apply)
  • Manually setting hasAvailableSubscription: true in ~/.claude.json — session still

shows "Claude API", flag overwritten on next session start

Related issues (all closed):

  • #33119 — same remote control symptom, different root cause
  • #19879 — same hasAvailableSubscription: false pattern
  • #12383 — Desktop variant
  • #12249, #4354 — related auth misdetection

View original on GitHub ↗

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