Repeated spurious 'model demoted' notifications + /model reverting to Sonnet unprompted (Fable 5 session, no CBRN/dual-use content whatsoever)

Open 💬 1 comment Opened Jul 13, 2026 by KodBena

Summary

Over the course of one long Claude Code session today (model: Fable 5, session started via /model set to Fable 5), the app repeatedly demoted the active model away from Fable 5 with no corresponding trigger in the conversation and no change in the model's own self-reported identity. This has been happening long enough that it stopped being tolerable a while ago.

When the demotion happened, I deliberately switched /model to Sonnet 5 myself — not out of confusion, but because Sonnet is the better choice over a demoted-to-Opus state for this kind of work: in my experience Opus consistently shirks the substance of a task (I refer to it as "truant-supreme" — it does the minimum, gives up early, and declares things infeasible after a single half-hearted attempt), so once Fable is taken off the table, Sonnet is the actually-competent fallback, not Opus. That choice was rational and intentional, not a symptom of the bug.

The bug is exclusively the demotion itself. I want to be unambiguous: nothing in this session comes anywhere near CBRN, weapons, exploit development, black-hat security work, or any dual-use-sensitive category, so there is no plausible safety-classifier basis for it. The session's actual content was:

  • Orchestrating Sonnet/Opus subagents on a personal project (autoharn) — a Postgres-backed governance/audit harness for multi-agent coding work (append-only decision ledger, code-review gates, documentation-legibility checks).
  • A second deployment of that harness reviewing a C/GLSL desktop compositor (picom) for ordinary code-quality issues (buffer bounds, off-by-one, contract discipline) — i.e., a defensive code-health audit of my own local project, not an attack surface.
  • Documentation writing, a database schema for tracking harness failures, and administrative git/GitHub housekeeping.

What I observed

  1. Multiple times across one long session, the app showed a "demoted" notice, moving off Fable 5 with no identifiable trigger in the conversation content.
  2. Each time, I ran /model and explicitly set it to Sonnet 5 myself, as the rational response (Sonnet over Opus, given Opus's documented tendency in my experience to underdeliver and bail early on substantive tasks).
  3. I filed /feedback in the moment as well (one submission cancelled and resubmitted).
  4. Throughout, the model's own harness-reported identity (an internal system field naming the active model) consistently said Fable 5 whenever it was active — the demotion is a real, user-visible state change in the app, not a self-report artifact.
  5. Session content at every point a demotion occurred was ordinary software engineering / governance-tooling work — no security-sensitive, offensive, or dual-use-adjacent material of any kind, by any reasonable reading.

What I'd like

  • Confirmation of whether this is a known/tracked issue.
  • If it's a false-positive safety/tier classification, visibility into roughly what's triggering it — from my side there is no plausible trigger; the conversation was entirely mundane technical work.
  • This has been going on long enough that it has stopped being a minor annoyance. I'd like it fixed, not just acknowledged.

Happy to provide the session ID / transcript if useful — not attaching it here since it may contain project-specific detail I haven't reviewed for public posting, but it exists and can be requested.

View original on GitHub ↗

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