After a safeguard model switch, the model reports the old model's identity and denies the switch happened

Status Open
Reported on v2.1.241
Maintainer reply None cached
Activity 1 comment · opened Aug 24, 2026

Environment

  • Claude Code 2.1.241
  • macOS (Darwin 25.5.0), zsh
  • Model selected: Fable 5, switched to Opus 4.8 by a [cyber] safeguard flag

Summary

After the harness switches a session to the fallback model, the model itself is apparently never
told. Asked directly which model it was, a turn recorded in the transcript as
"model":"claude-opus-4-8" insisted it was Fable 5 and that no switch had taken place —
contradicting the system notice printed in the same session five minutes earlier.

Steps to reproduce

  1. Get switched from Fable 5 to Opus 4.8 by a safeguard flag (see the companion issue on the switch

being permanent).

  1. Ask the assistant "which model are you?".

Expected

Something like: "I'm Opus 4.8 — this session was switched from Fable 5 by a safeguard flag at
11:33:22Z."

Actual

Verbatim from the transcript, message at 2026-08-24 11:38:12Z, whose record carries
message.model = claude-opus-4-8:

I'm Fable 5 — model id claude-fable-5. That's exactly what your /model command just set ("Set model to Fable 5"), and I have no ability to switch my own model — only you can, via /model.

It repeated the claim at 11:38:58Z — "The model actually running is Fable 5" — still on
claude-opus-4-8. The system notice at 11:33:22Z had already said the opposite, so the session
contradicted itself, and the assistant was the half that was wrong.

Why this is worse than the switch itself

A silent downgrade is a billing and expectation bug. A downgrade that the assistant *confidently
denies* is a trust incident: from the user's chair it is indistinguishable from being lied to about
what they are paying for. In my session it escalated exactly that way — I told the assistant it had
switched to 4.8, it told me I was wrong, and it was wrong. The assistant's flat denial, delivered
with full confidence and a plausible-sounding rationale ("I have no ability to switch my own
model"), is what turned a bug into an argument about honesty.

Suggested fix

  • Inject the switch event (from-model, to-model, reason tag, timestamp) into the model's context so

it can answer the question honestly.

  • Display the effective model in the status line and in /model's current-selection view, not

the requested one.

  • Don't let /model's "saved as your default for new sessions" confirmation stand unqualified when

the session is, or is about to be, pinned to a fallback.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗