Follow Discord
Sweep 22 Oct 2026 · 04:32Z Build v2.1.308 527 read Stable v2.1.308 Latest v2.1.308 Next v2.1.308 Feeds RSS JSON llms.txt llms-full.txt Unofficial

Claude Code v2.1.193 ·

model_refusal_no_fallback SDK Event

Entry
JSON All of v2.1.193
EntryKind: in v2.1.193,
New FeaturesSection of the release
What

A new system event is now emitted when the model ends a turn with stop reason "refusal" and no fallback model is configured, allowing SDK consumers to handle refusals programmatically.

Details
  • Event fields: type: "system", subtype: "model_refusal_no_fallback", original_model, request_id, api_refusal_category, api_refusal_explanation, content, uuid, session_id.
  • A new refused_user_message_uuid field (added to both model_refusal_fallback and model_refusal_no_fallback) contains the UUID of the human turn that triggered the refusal — the rewind target and composer prefill for edit-and-retry.
  • refused_user_message_uuid is null when the refused turn was not human-authored (e.g., a background task notification or auto-continuation).
  • Not emitted when a fallback model existed but was declined or gate-failed (that case uses the existing model_refusal_fallback event).
Evidence

New event schema (search for "model_refusal_no_fallback" or "UUID of the user message the refused request was for")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

See this entry in the whole of v2.1.193 →

Feedback