When the 'Number You See' Didn't Match the Bill──Claude Code v2.1.239 Fixes a Hidden 10% Markup in Cost Display and 'Silent Double-Billing' at Once
Claude Code has released v2.1.239. The estimates in /cost and --max-budget-usd now reflect the 1.1x data-residency markup that had never been shown. It also fixes a bug where responses were silently re-run in non-streaming mode behind a Bedrock proxy──quietly double-billing──bringing your local cost
Anthropic's coding agent "Claude Code" released v2.1.239 on August 22. There are no flashy new features. At the core of this update is the unglamorous work of making the cost numbers on your screen match your actual bill. It surfaces a hidden markup in estimates, plugs a billing hole that had been quietly inflating charges, and keeps an agent that hits its budget ceiling from waiting forever. The more you run agents unattended, the more these fixes for the "gap between your gauges and your bill" matter──and this release lines several of them up.
A 10% Markup That Estimates Never Showed
First, the cost estimate itself changed. The /cost display, the status line, and the --max-budget-usd calculation that sets your budget ceiling now include the 1.1x markup that applies to data residency workspaces. Configurations that run inference within the US only incur a 10% higher rate than usual. Until now, your local estimates didn't reflect this surcharge, creating a quiet discrepancy between the displayed amount and the billed amount.
The effect is simple. Because the amount you set with --max-budget-usd as your "stop here" limit had been running on pre-markup figures, your actual bill could exceed the ceiling. This fix aligns both the ceiling and the display to markup-inclusive numbers. It's an update that makes your local meter and your end-of-month invoice run on the same yardstick.
Behind a Proxy, One Response Turned Into Two
Another bug that hit charges directly was closed. When using Claude Code via Amazon Bedrock, behind a proxy that strips the Content-Type header from responses, streaming didn't work──so each turn was re-run in non-streaming mode, silently doubling the API charges.
- What was happening: The proxy strips the header → Claude Code can't receive the streaming response → it retries the same turn in non-streaming mode.
- What users saw: Since the response itself comes back, everything looks normal. Behind the scenes, two API calls were being charged for a single response.
- The fix: This double execution is stopped, restoring one-turn-billed-as-one.
This is limited to a specific configuration (Bedrock plus a header-rewriting proxy). But the pattern of "it works, yet you were paying double behind the scenes" is precisely the kind of thing that's hard to notice in unattended operation. The more agents you run, and the longer you run them, the larger the invisible gap that piles up.
Don't Keep an Agent That's Hit Its Ceiling Waiting
The budget-related work extended to the "waiting" problem in unattended operation, too. The persistent retry mode (CLAUDE_CODE_RETRY_WATCHDOG) was previously built to patiently wait and retry on transient errors, but it now fails immediately, without waiting, when an organization's spending limit is reached or credits run out. It's a change to avoid a situation where an agent silently keeps waiting on an error that has no prospect of recovery.
Along with this, the message shown when you exhaust your monthly spending limit now also indicates when your session limit or weekly limit will reset. It's a small improvement that lets you read "why did it stop" and "when can it run again" right there on the spot.
The More It Runs Around the Clock, the More Cost Becomes a 'Line Item'
What these updates point to is the fact that in an operation where you keep a coding agent resident and running, token costs are a real operating expense line item. Unlike the days when a person confirmed each question one at a time, in a usage pattern where agents run in parallel unattended, cost becomes "something that has already piled up by the time you notice." That's exactly why having your local estimate match your bill, and having your ceiling take effect at real amounts, becomes the premise of budget management.
This perspective overlaps with a theme that has been running for a while. How to rein in the token costs of keeping agents running, how to cast a net of ceilings and budgets──within the broader flow of each company tightening its grip on "overspending," this step of "making estimates match the bill" finds its place. Seen from the business side, this is less a story about features than a matter of accounting: whether you can put the cost of AI operations onto your ledger correctly.
Other Notable Changes
Beyond cost, several updates that matter in practice landed as well.
- Python SDK migration help:
/claude-api upgradelets you migrate a project fromanthropic0.x to 1.x (moving timeouts to useanthropic.Timeoutrather thanhttpx.Timeout). - Cross-session messaging on Windows: As on macOS/Linux, Claude Code instances across multiple machines can now reach each other via
SendMessageand find one another viaListAgents. - Synced plugin identification: Plugins synced from claude.ai now display as
name@synced, so they don't overwrite a same-named plugin you installed locally. - Broader full-screen support: The full-screen renderer can now be used with configurations that were previously unsupported, such as Bedrock, Vertex, and Foundry.
If You're Adopting It, First Check Whether Your Setup Is Affected
Of this release's highlights, the markup-inclusive cost estimate matters to data residency workspace users. The double-billing fix matters only to the specific configuration of Bedrock plus a header-rewriting proxy. If your environment matches these, the value of the update is straightforwardly large. If it doesn't, the direct cost impact is limited.
Conversely, these fixes are also confirmation that situations where display and billing can diverge really existed. It's not something to hype, but if you're running agents unattended, don't rely on your end-of-month invoice alone──take a moment to confirm that /cost and your limit settings are taking effect at real amounts. The practical takeaway from this update is that the materials for that check are now in place.
References: Claude Code Changelog (official) / anthropics/claude-code CHANGELOG.md / Releasebot: Claude Code Updates by Anthropic