Skip to content

Epic: Anthropic distillation protection (preserved thinking and reasoning_extraction refusals) #5160

Open
2 of 5 issues completed

Description

@yonib05

Summary

Newer Claude models bind each thinking block to the conversation that produced it (preserved thinking, Bedrock docs). If the system prompt, tools, or any earlier message changes, replaying the block fails with a 400. This affects Fable 5.1, Opus 5.5, and Haiku 5.5. A new reasoning_extraction refusal also blocks prompts that ask the model to write out its reasoning.

The check is on by default only for accounts created on or after 2026-08-31, so older test accounts won't reproduce it. To force it on, send the thinking-binding-controls-2026-08-01 beta with thinking.block_binding.prefix_mismatch_behavior: "error".

Invalid `signature` in `thinking` block. The block is bound to a different conversation.

Refusals return HTTP 200 with stop_reason: "refusal" and a stop_details.category.

See https://support.claude.com/en/articles/16761192-preserved-thinking-changing-how-the-messages-api-handles-thinking-blocks-to-protect-against-distillation for more information.

Areas to test

Metadata

Metadata

Assignees

Labels

area-contextSession or context relatedarea-modelRelated to models or model providersbugSomething isn't working

Type

No type

Fields

Language

None yet

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions