[BUG] Claude Code sessions authenticated via Max subscription billed to Console API key

Status Open
Reported on v2.1.148
Maintainer reply None cached
Activity 0 comments · opened Aug 6, 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?

Environment note: This occurred in the Claude for Mac desktop application
(v1.25927.0, Claude Code engine 2.1.148), not the terminal CLI. Terminal/shell
is marked "Other" as no dropdown option covers the desktop app. If
authentication differs between the two clients, that may be where this
originates.

Max 5x subscriber. Claude Code authenticated solely via subscription OAuth —
verified organizationType: claude_max, billingType: stripe_subscription, with
no ANTHROPIC_API_KEY in the environment, no apiKeyHelper, empty env blocks in
all user and project settings files, and no shell-profile references.

Despite this, Claude Code session usage was charged to a Console API key in my
organisation on two dates — 25 July and 2 August 2026 — the two days I ran
extended sessions.

Critically, my subscription limits were not exhausted at any point. Usage was
well under 20% of my Max allowance, I was never told a limit had been reached,
and my usage-credits ledger reads £0.00 spent against a £20 monthly limit that
has been configured for months. So this did not travel via the documented
overage mechanism either.

The failure was entirely silent: no warning, no error, and no notification that
billing had moved from my subscription to a Console API key. I only discovered
it when my API access was suspended for an unpaid balance.

Claude Code was first started on this machine on 22 May 2026 — the exact date
the billed key was created — but no usage appears against that key in the 1–24
July export, so the attribution appears to have begun on 25 July rather than at
key creation.

My organisation holds two keys:

Key A — used by a small web application. Calls only claude-sonnet-5 and
claude-haiku-4-5, a few thousand tokens per day. Lifetime cost: $0.03.

Key B — charged for claude-fable-5, claude-opus-4-8, claude-opus-4-6,
claude-opus-4-7, claude-opus-4-5, claude-sonnet-4-6. Models my application
never calls. Displayed cost $141.52, which appears to cover the current period
only — July charges of approximately $70 were additional.

On 2 August: 14.28M input tokens on Key B (8.3M cache-writes, context_window:
200k–1M) versus 9,923 tokens on Key A. Result: −$121.55 balance, API access
suspended, production application offline.

Anthropic support acknowledged in writing on 3 August: "Claude Code usage
authenticated with your Max subscription was routed through the [key] and
billed against your Console API credits rather than your subscription. This
shouldn't happen when Claude Code is properly authenticated with a subscription
account."

Ticket raised 2 August, referred to human support the same day. No human
response as of the time of writing (6 August PM).

I cannot confirm whether the behaviour persists on the current build, as my
Console access remains suspended by the disputed balance.

Happy to provide account UUIDs, key identifiers and usage CSVs privately to
Anthropic staff.

What Should Happen?

Claude Code sessions authenticated with a Claude Max subscription should
consume subscription rate limits only, and should never be billed against
Console API credits — particularly when no API key is configured on the
machine.

If subscription limits are reached, the session should pause or warn the user.
It should not silently transfer billing to a Console API key, and the user
should be notified before any charge is incurred against a separate billing
system.

A support ticket is open separately regarding the billing correction (raised
2 August 2026). This issue concerns the underlying routing behaviour only.

Error Messages/Logs

No error was surfaced at any point — this is central to the report. Claude Code gave no warning, no notice of a limit being reached, and no indication that usage was being billed elsewhere. The failure was entirely silent.

The only observable signals appeared in the Console, after the fact:

Banner: "You have an unpaid balance of US$121.55. Add funds to resume API access."
Dashboard: Organization credits −$121.55 · Spend this month $141.55
Usage export attributing claude-fable-5 / claude-opus-4-8 / claude-opus-4-6 / claude-opus-4-7 / claude-opus-4-5 / claude-sonnet-4-6 to a Console API key on 25 July and 2 August 2026

Local verification found no API credential: no ANTHROPIC_API_KEY in the environment, no apiKeyHelper, empty env blocks in all user and project settings, no shell-profile references. ~/.claude.json shows organizationType: claude_max, billingType: stripe_subscription.

Steps to Reproduce

Signed in to Claude Code with a Claude Max subscription (no API key configured anywhere). Run extended sessions. Usage is charged to a Console API key in the same organisation rather than to the subscription.
Cannot reliably reproduce on demand — occurred on 25 July and 2 August 2026.

Claude Model

Not sure / Multiple models

Is this a regression?

I don't know

Last Working Version

Unknown — I have no record of which build was running on the affected dates. The Claude for Mac app has since auto-updated (bundle timestamp 4 August 2026), so the incidents on 25 July and 2 August 2026 occurred on earlier builds. Sessions before 25 July show no charges against the affected key.

Claude Code Version

2.1.148 (Claude Code engine), running inside the Claude for Mac desktop application v1.25927.0 — not the terminal CLI. macOS. Underlying shell zsh.

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

Other

Additional Information

_No response_

View original on GitHub ↗