Claude Code switched from subscription to API-credit billing without user action — no indicator until spend limits hit

Resolved 💬 2 comments Opened Jun 4, 2026 by appalanche127 Closed Jun 7, 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 began billing my interactive sessions to API credits instead of my
Pro/Max subscription, without any action from me. I never configured an API key
(verified: no ANTHROPIC_API_KEY in env, shell history, or config).

Evidence it was an unintended switch, not a pre-existing config:

  • I used Claude Code actively in both May and June.
  • May API usage was flat — May sessions billed to my subscription.
  • In June, interactive sessions billed to an API key (visible in the API Usage

dashboard, which shouldn't be possible under a subscription).

  • Re-authenticating ("Log in with Claude") restored subscription billing.

The switch coincided with an update / forced re-auth. I can't pin the exact
trigger, so I'm reporting the observed behavior, not a cause.

Impact: one overnight session consumed ~24M input tokens on Opus before I
noticed. It was caught only because I happened to have a monthly spend limit set.
The product only surfaces "connect your subscription" guidance after usage limits
are hit — i.e. after charges accrue. Users without a spend limit could be billed
with no warning.

What Should Happen?

  • The chosen auth method (subscription vs API key) should persist across updates

and re-auth. If it ever changes, Claude Code should require explicit
confirmation before billing a session to API credits.

  • The active billing source should be visible (e.g. in /status:

"Billing: Pro/Max subscription" vs "Billing: API credits — $X"), and the CLI
should warn before the first API-billed request — not only once usage limits
are reached.

Error Messages/Logs

No error was produced — that's the core problem. No prompt, warning, or error at
any point; the billing source changed silently. The only signals were
interactive-session usage appearing in the API Usage dashboard and the
spend-limit alert. Happy to share org/workspace IDs, affected dates, and Usage
screenshots privately.

Steps to Reproduce

Note: this is auth-state dependent, so I can't guarantee a deterministic repro.
Best-effort:

  1. Authenticate Claude Code via Pro/Max subscription ("Log in with Claude").
  2. Confirm sessions bill to the subscription (nothing in the API Usage dashboard).
  3. Take a Claude Code update and/or a forced re-authentication.
  4. Re-authenticate.
  5. Observe whether interactive sessions now bill to an API key — check the API

Usage dashboard for interactive-session token usage that shouldn't appear
under a subscription.

In my case the switch happened around an update/re-auth without my selecting an
API key, and there was no on-screen indication of the active billing source at
any point.

Claude Model

Opus

Is this a regression?

Yes, this worked in a previous version

Last Working Version

Unsure of the exact version. Billing was correct (subscription) through May 2026; the switch to API-credit billing first showed up around June 1, 2026.

Claude Code Version

2.1.150 (Claude Code)

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

VS Code integrated terminal

Additional Information

_No response_

View original on GitHub ↗

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