[BUG] model_consent_fallback silently cancels consent mid-session (no prompt shown), switching model without user action

Status Open
Reported on v2.1.215
Maintainer reply None cached
Activity 0 comments · opened Jul 21, 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?

Summary

Mid-session, the model silently switched from Fable 5 to Opus 4.8 without any
visible consent prompt. The transcript records a model_consent_fallback system
event with choice: "cancelled", but no prompt was ever displayed to me and no
warning appeared in the conversation UI.

Weekly Fable 5 quota was NOT exhausted (~38% remaining at the time), so this was
not a quota-driven fallback.

Environment

  • Claude Code 2.1.215 at time of event (2.1.216 currently installed —

an update appears to have landed during the session)

  • Windows 11, PowerShell / Git Bash
  • Plan: Max 20x
  • settings.json model: "claude-fable-5[1m]"

What Should Happen?

Transcript record (from session .jsonl)

{
  "type": "system",
  "subtype": "model_consent_fallback",
  "level": "warning",
  "content": "Switched to Opus 4.8 (1M context) for this session · Fable 5 requires usage credits · /model to change",
  "choice": "cancelled",
  "originalModel": "claude-fable-5",
  "fallbackModel": "claude-opus-4-8[1m]",
  "persistedAsDefault": false,
  "version": "2.1.215",
  "timestamp": "2026-07-21T13:25:08.568Z",
  "sessionId": "ad1a5a37-5374-40c0-a445-cba22848a3c7",
  "session_id": "e8bbe901-3bfe-4f0c-9906-4af2f15fc777"
}



### Error Messages/Logs

```shell
Expected

- The consent prompt should be displayed and awaited, not auto-r
cancelled.
- If a fallback does occur, the level: "warning" message should
the conversation, not only written to the transcript.

Actual

- No prompt appeared.
- choice: "cancelled" was recorded without user input.
- No visible notice in the session; I only discovered the switch later by
running /model, and confirmed the cause by reading the transcrip

Steps to Reproduce

Notes / possible lead

  • Two different session identifiers appear in the same record

(sessionId vs session_id) — may or may not be related.

  • The CLI version changed from 2.1.215 to 2.1.216 around this se

in-session update may have interfered with prompt rendering.

Impact

Silent model substitution is hard to detect and affects output quality
expectations. persistedAsDefault: false meant settings.json was
nothing looked wrong on inspection — the only trace was the transcript.

Claude Model

None

Is this a regression?

Yes, this worked in a previous version

Last Working Version

_No response_

Claude Code Version

latest version on 2026.7.21.

Platform

Anthropic API

Operating System

Windows

Terminal/Shell

VS Code integrated terminal

Additional Information

_No response_

View original on GitHub ↗