Claude Code shows 'API Usage Billing' despite active Max subscription — Channels unavailable
Problem
After purchasing a Claude Max subscription and logging in via claude auth login --claudeai, Claude Code still displays "API Usage Billing" in the status line. Attempting to use Channels results in:
--channels ignored (plugin:fakechat@claude-plugins-official)
Channels are not currently available
Background
I previously used Claude Code with Google Vertex AI (API billing) for an extended period before purchasing Max. My account now has both an API Usage Billing org and a Max subscription. Claude Code appears to always select the API billing org.
Notably, oauthAccount.billingType in .claude.json correctly shows "stripe_subscription", but the UI and server-side checks still classify the account as API Usage Billing.
What I tried (all failed)
claude auth logout+claude auth login --claudeai- Removed
CLAUDE_CODE_USE_VERTEX,CLOUD_ML_REGION,ANTHROPIC_VERTEX_PROJECT_IDfromsettings.jsonand.claude/.env - Wrapped
claudein an alias usingenv -uto strip all Vertex/GCP env vars before launch - Renamed
claude-code-adc.jsonso Claude Code couldn't auto-detect it - Set
hasAvailableSubscription: truein.claude.json(gets overridden on startup) - Moved system-wide Google ADC (
~/.config/gcloud/application_default_credentials.json) out of the default location
Key observation: Even when all Vertex env vars are stripped from the launch environment via env -u, Claude Code re-injects CLAUDE_CODE_USE_VERTEX=1 and ANTHROPIC_VERTEX_PROJECT_ID internally — likely by auto-detecting Google ADC credentials on the system.
Root cause
This appears to be a server-side org routing issue. The OAuth flow has no organization picker and defaults to the API billing org. No amount of local config changes overrides the server-side classification. Additionally, Claude Code auto-detects Google Application Default Credentials and enables Vertex AI mode even without explicit env var configuration.
Environment
- Claude Code v2.1.87
- macOS Darwin 24.6.0
- Google Cloud SDK installed with active ADC (needed for other GCP work — cannot be removed)
Expected behavior
claude auth login --claudeai should select the Max subscription org and display "Max Subscription" (or similar) in the status line, with Channels and other subscription features available — regardless of whether Google ADC credentials exist on the system.
Related issues
- #26839 — CLI always selects API Usage Billing org instead of Max plan
- #20976 — Max plan shows as "API Usage Billing" in CLI
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗