[BUG][Billing] Claude Code auto-created an API key + workspace after re-auth, silently routing subscription usage to pay-per-use API; runaway 8h+ session billed $104.25

Status Open
Maintainer reply None cached
Activity 7 comments · opened Jul 25, 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?

I had been using Claude Code in VS Code authenticated against my Claude Team subscription, and had changed no billing or authentication settings.

On 21 July 2026 Claude Code prompted me to re-authenticate. After that:

  1. A workspace named "Claude Code" was created automatically in my Console (timestamp 21 Jul 2026, 10:59). I did not create it.
  2. An API key was created automatically inside it, auto-named after my own username. I did not create it, and no clear in-product warning told me my usage would stop being covered by my subscription and start billing per token.
  3. All usage was then billed as pay-per-use API credit instead of against my subscription seat.
  4. A session hung and looped for hours. Claude Code's own Account & Usage panel reports 100% of usage came from sessions active 8+ hours, all at >150k context.

Result: USD 104.25 billed in a single day, which also pushed the org balance negative (-USD 4.73) — usage continued past a zero prepaid balance instead of stopping.

For scale: my entire intentional API usage across the whole account history is USD 0.30. This is ~350x my lifetime API spend, in one day, from a session I was not driving. Console logs show tens of consecutive Opus requests of ~650,000-700,000 input tokens each within a few hours.

The workspace name ("Claude Code") and the auto-generated key name make the key look official and expected, so there is no signal that the billing source has changed.

What Should Happen?

  1. Claude Code must require explicit, unambiguous confirmation before creating an API key or workspace that changes the billing source from subscription to pay-per-use ("This will bill per-token to API credit, not your subscription — continue?").
  2. The active billing source should be shown prominently at session start and in /status.
  3. Prepaid credit should be a hard stop; usage must never exceed the available balance into a negative one.
  4. A hung or looping session should trip an automatic circuit breaker before large spend accumulates.

Error Messages/Logs

Credit balance is too low

Steps to Reproduce

  1. Use Claude Code in VS Code authenticated against a Claude Team subscription.
  2. Accept the re-authentication prompt when Claude Code requests it.
  3. In the Console, observe a workspace named "Claude Code" and an API key created automatically, without explicit consent.
  4. Observe that usage is now billed as pay-per-use API credit instead of against the subscription seat.
  5. Leave a session running; if it hangs/loops it keeps consuming credit for hours with no cap, past zero into a negative balance.

Claude Model

Opus

Is this a regression?

I don't know

Last Working Version

Unknown. Behaviour changed on 21 Jul 2026 after a re-authentication prompt; subscription billing had worked correctly for a long time before that. I cannot confirm which version introduced it.

Claude Code Version

To be added in a comment

Platform

Other

Operating System

macOS

Terminal/Shell

iTerm2

Additional Information

Support experience (part of the problem): I opened case 215475177002899. Every response came from the Fin AI agent, which denied a refund citing the API Credit Terms, confirmed in writing it cannot process credits or exceptions, confirmed in writing it cannot escalate cases or contact internal teams, and repeatedly offered instead to refund/cancel my Team subscription (unrelated to the charge and explicitly not what I asked for). No human has responded for several days.

This mirrors #68773, where Anthropic ultimately acknowledged in writing that charges resulting from a technical malfunction are not precluded from refund by the credit terms.

Asks: (1) fix the silent subscription-to-API billing reroute and add a consent step; (2) hard stop at zero balance plus a runaway-session circuit breaker; (3) a working escalation path to a human billing specialist; (4) review and credit the USD 104.25 as an erroneous charge and clear the -USD 4.73 balance.

Console screenshots (API keys, Usage, request logs, Claude Code usage panel) will be attached in a follow-up comment, with organization ID, account email and key prefix redacted.

View original on GitHub ↗

7 Comments

carloscanado · 1 month ago

Update: the support case (215475177002899) was closed without any human review. Attempting to continue the conversation in the Help Center returns "the conversation has ended". The Fin agent had already confirmed in writing that it cannot process credits or exceptions and cannot escalate to a human billing specialist. There is still no working path to a human for a disputed API charge.

carloscanado · 1 month ago

Update 2: support has now stated it "cannot promise or arrange a handoff to a person" and separately claimed it cannot locate any organization linked to my email — despite an earlier reply in the same case correctly listing both of my organizations, including the API one. Two orgs with near-identical names (one with a space, one without) appear to defeat the lookup, and the dispute keeps being routed against the subscription billing profile instead of the API org. Same root cause as #57594.

COOLak · 1 month ago

Adding a related billing-platform signal from another paid account, without repeating private identifiers from this issue.

The common pattern is not the exact product surface; it is billing state diverging from the usable account / credit state, followed by Fin/support being unable to route the case to a human Billing Platform owner.

In my case, automatic usage-credit reloads continue to charge successfully from the saved billing setup, but manual prepaid usage-credit purchases fail or get stuck and do not produce the expected usable-credit outcome. That points to a platform-side reconciliation problem, not a generic customer card problem.

This issue adds a closely related ownership signal: Claude Code / Console billing source, organization, subscription entitlement, API-credit usage, credit balance, and support-routing state can diverge in ways that need a human billing-platform review. A bot loop cannot resolve that kind of ledger/entitlement mismatch.

Requested triage path: please route these cases to Billing Platform / payment-operations / entitlement reconciliation with authority to inspect checkout, purchase-commit, organization, credit-ledger, and support-routing records.

Privacy-sanitized public evidence hub for my related case:
https://github.com/COOLak/anthropic-claude-billing-incident

Hosted incident brief:
https://coolak.github.io/anthropic-claude-billing-incident/

Billing reconciliation matrix:
https://coolak.github.io/anthropic-claude-billing-incident/reconciliation-matrix.html

carloscanado · 1 month ago

Thanks — this corroborates the pattern from a second paid account, which is the part support keeps treating as an isolated user error.

To add to the shared signal, my case ended with support stating in writing that it (a) cannot process credits or grant exceptions, (b) cannot escalate to or arrange a handoff to a human, and (c) could not locate the billing profile for my organization by Org ID, despite an earlier reply in the same case correctly listing both of my organizations. Two orgs with near-identical names appear to defeat the lookup, and the dispute kept being routed against the subscription billing profile instead of the API org.

Supporting the same requested triage path: these cases need Billing Platform / payment-operations / entitlement reconciliation with authority to inspect organization, credit-ledger, entitlement and support-routing records. A prepaid balance that is allowed to go negative (-USD 4.73 in my case) is a ledger/control issue, not a usage question.

@anthropics — two independent paying business accounts in this thread now, both blocked at the same point: no human review path for a disputed billing charge.

carloscanado · 1 month ago

Update 3 — confirmation from Anthropic's own commercial channel:

I raised this with the buying agent on claude.com/contact-sales. Two statements from that conversation are relevant to this issue:

  1. Asked directly about runaway-session protection, the agent stated it could not find any documented circuit-breaker feature that detects a looping session and stops it. The only protections available are spend caps (per-user and per-organization) and threshold alerts. This confirms the gap this issue reports: there is no mechanism that halts an agentic session consuming ~700k input tokens per call in a loop for 8+ hours.
  1. The agent described the expected behaviour of prepaid usage credit as a hard stop: when the balance reaches zero, usage stops until an owner purchases more. In my case the balance was allowed to go to -USD 4.73. So either the hard stop is not implemented for API prepaid credit, or it failed. Either way, spending past a zero prepaid balance is a control failure, not user behaviour.

Both points are independent of the refund question and should be addressed as product defects.

carloscanado · 1 month ago

Update 4 — further confirmations from Anthropic's commercial channel:

  1. On the billing reroute, the agent stated that the issue is not that I had an API organization with credit, but that Claude Code changed the billing source from my Team seat to that organization after a re-authentication prompt, creating a workspace and key without notifying me of the change — and characterised this as a matter of consent and product behaviour, not user configuration.
  1. On the zero-balance hard stop, the agent corrected its earlier statement: documentation says usage stops when credit is exhausted, but it has no source guaranteeing a strict floor at zero without in-flight consumption. My -USD 4.73 demonstrates overshoot past zero.
  1. On runaway sessions, confirmed again: there is no documented feature that detects a looping session and stops it, and this requirement is met by no self-serve plan today, Team or Enterprise. Spend caps bound the damage; nothing interrupts the loop.

These are product defects independent of the refund question.

lucianlature · 1 month ago

Sorry you got hit with this, but $104.25 in a day from an 8h+ hung session, after a re-auth silently moved you onto pay-per-use, is exactly the failure mode a lot of us are afraid of.

+1 on all four asks, especially:

  1. Explicit consent before any workspace/API key that changes the billing source
  2. Hard stop at zero prepaid balance (negative balance shouldn’t be possible)
  3. A runaway-session circuit breaker when the same ~650k–700k Opus calls keep firing

The “Claude Code” workspace + auto-named key looking “official” is a nasty UX trap, since there’s no in-product signal that you left the subscription envelope.

I’ve been working on something small for the adjacent problem (visible session spend + soft warn / hard stop on a receipt trail for Cursor and Claude Code: early access, sidecar, not a full FinOps suite). It wouldn’t have stopped Anthropic creating the key, but it’s aimed at the “meter is quiet until the charge lands” gap.

Happy to compare notes offline if useful; either way, hope support credits the $104.25 and they ship the consent + hard-stop fixes.