Model selection has been unreliable since 2026-04-28, and the issue naming the mechanism (#73881) has been open 75 days — users are still billed at a tier they explicitly left

Status Open
Reported on v2.1.270
Maintainer reply None cached
Activity 0 comments · opened Sep 16, 2026

Summary

Model selection is not reliable, and the failure is always billed in the user's disfavour. This has been reported continuously since 2026-04-28. The issue that names the exact mechanism — #73881, "Mid-session model switch not applied — UI shows the new model, session keeps running the previous one (+ silent budget loss)" — was filed 2026-07-03 and is still open today, 75 days later. I reproduced it again this morning on 2.1.270.

I'm opening this as a follow-up rather than another duplicate, because the individual reports keep getting closed while the behavior doesn't change, and the pattern is only visible when they're laid out together.

The record

| Issue | Filed | Status | What it reported |
|---|---|---|---|
| #54426 | 2026-04-28 | closed 2026-06-11 | Max-effort window silently self-downgrades mid-session |
| #58450 | 2026-05-12 | closed 2026-06-27 | Every window silently billed at a higher tier than configured |
| #67506 | 2026-06-11 | closed 2026-09-05 | Token consumption doesn't match the model's description |
| #73597 | 2026-07-02 | closed 2026-08-17 | Subagents billed as a different, more expensive model |
| #73881 | 2026-07-03 | OPEN | Model switch not applied; UI shows new model, old one keeps running and billing |
| #84028 | 2026-08-05 | closed 2026-09-09 | CLI and mobile report different models for the same live session |
| #84612 | 2026-08-06 | closed 2026-09-08 | Large share of a weekly budget consumed by a model with every setting pointed elsewhere |

Some of these are mine. #67506, #73597 and #73881 are from unrelated reporters. This is not one user's misconfiguration; it is independently observed, across surfaces, for nearly five months.

Six of the seven are closed. The behavior in the seventh is still reproducible on a current build. Closed has not meant fixed here, and that is the reason for this issue.

What still reproduces, today, on 2.1.270

Change the model in the Claude app's model selector, deliberately, to move work off the expensive tier:

  • The selector shows the new model.
  • Already-running desktop sessions keep executing — and keep billing — as the previous, more expensive tier.
  • No warning at selection time that the change applies only to sessions started afterward.
  • No indication inside the running session that it is still on the old model.
  • The first real feedback that the change didn't take is the consumed allowance, after the fact.

This is not the same as "a running session keeps its boot model." That behavior is understood, and for the CLI it is documented. The defect is the three-step combination: the product accepts the change, displays it as applied, and then charges the previous rate.

Why this one is different from an ordinary bug

Every other bug costs time. This one costs metered, capped, non-refundable allowance, and it does so specifically when the user is trying to spend less.

The only reason anyone changes tier mid-flight is to stop consuming a scarce allowance. That is the entire function of the control. So when the switch silently fails:

  • The action taken specifically to stop spending the expensive tier does not stop spending it.
  • The user is charged the premium rate for work they explicitly moved off that rate.
  • They are charged it on the strength of a confirmation the product displayed.
  • The allowance is capped, and it does not come back.

A tier selector that can't be relied on to take effect is not a usage control — it is the appearance of one, and people are budgeting real money against it. "It only applies to new sessions" is not a fix; it is a description of the trap.

If a running session genuinely cannot change model, the honest options are: say so at selection time, refuse the selection, or offer to restart the session. Silently accepting it and then charging the old rate is the single option that converts a product limitation into a charge against the user.

The remediation gap — I have a direct comparison now, and it is not close

I added Codex to my workflow this summer. That gave me something I did not have before: a side-by-side on how two vendors handle usage burned by their own agent's mistakes.

One morning I left an agent running on a defined task and stepped away from my computer. It invented a different task, went on a tear, and consumed my entire allowance in roughly ninety minutes. That failure was squarely the other vendor's — their agent, their runaway, their architecture.

They have given me multiple courtesy usage resets. When their tooling burns my allowance on something I did not ask for, a remediation path exists and it actually gets used.

Here, the same class of failure has been shipping since 2026-04-28. It is still shipping today. And the usage it consumes is simply gone.

That is the comparison I keep coming back to, and it is why I am escalating this rather than absorbing it quietly again.

What "not fair" actually means here

I want to be precise, because this is not a complaint about a bug existing. Bugs exist everywhere. It is about who absorbs the cost of a known one.

  • Agents have been running against this defect since April. Not a regression discovered last week — a documented, reported, reproducible defect, filed by multiple independent users, still live five months later.
  • Since July, when #73881 named the exact mechanism, I have not been able to trust what I am seeing with my own eyes. The selector says one model. The billing says another. Both come from the same product. I have no way to tell which one is true without instrumenting it myself, and I have had to do exactly that.
  • Every one of those hours is metered against a capped allowance, and every failure of this class is charged to me at the higher rate.

Claude usage does not feel fair. Not measured against the amount of work I get out of it, but measured against the volume of architectural defects still embedded in the product that eat that usage — this one, sessions that keep billing after logout, background agents that survive a window close, full-context re-reads on every resume, model/tier mismatches between surfaces. I have filed all of these. Most were closed. The usage they consumed was never returned.

I am not asking to be compensated for a product having bugs. I am asking why the party who did not write the bug, did not ship it, and reported it repeatedly is the only one paying for it — while a competitor, for a failure that was genuinely theirs, simply made it right.

Compounding: nobody can audit which model they're on

A model value is persisted in at least three separate layers — project settings, user settings, and the global config file. On a current machine those three hold three different values simultaneously, and the global config carries several model fields with mixed values of its own.

Whatever the intended precedence is, the practical result is that "which model is this session actually running, and which one am I being charged for?" is not answerable from any single place. #84028 is the same problem from the outside: the CLI and the mobile app reported different models for the same live session, sixty seconds apart, across pricing tiers. That was closed too.

When the tier can't be verified and the switch can't be trusted, the usage meter is not auditable by the person paying for it.

What I'm asking for

  1. Fix the billing consequence first. A tier change that is accepted and displayed must never be followed by charges at the old tier. If it can't take effect, don't accept it.
  2. Make the selector's confirmation mean what it appears to mean — or state plainly, at the moment of selection, that it will not apply to the current session.
  3. Expose the effective model of a running session, distinct from the selected model, somewhere the user can see it.
  4. Reconcile the config layers so there is one answer to "what model is this, and what am I paying for."
  5. Please stop closing this class without a behavior change. Seven reports, three reporters, five months, and it still reproduces. Each closure resets the clock and scatters the evidence.

Reproduced on 2.1.270. Happy to provide anything further that helps.

View original on GitHub ↗