
What happened
A test on October 8 with the thinking-binding-controls-2026-08-01 header showed claude-opus-5-5 kept its thinking blocks when history was appended but dropped one as a prefix_binding_mismatch when the first exchange was trimmed.
Why it matters
The check only fires when previous assistant turns are resent, so code that appends history survives while any trimming of older turns can break every later thinking block, and the break shows up on hard production inputs rather than easy tests.
Summaries like this, in your inbox every morning.
The rule behind the error is straightforward once you see the mechanics. Each thinking block carries a signature recording the conversation prefix that produced it — the top-level system prompt, the set of tools, and every message that came before that block. When history is resent, the API checks whether that prefix is unchanged. If it is not, that block and all thinking blocks after it are treated as invalid, which is what surfaces as the opening 400.
The awkward part for builders is that the check is conditional on whether the model actually thought. In the October 8 test, claude-fable-5-1 produced no thinking blocks at all across three easy "effort low" turns, so trimming the first exchange changed nothing. claude-opus-5-5 also did not think on the first two turns, but did on the third — and that was the block that got dropped as messages.3.content.0. The practical consequence is that the same history-editing code can pass an easy test and fail on a hard production input.
Its own audit illustrates where the line falls. Three projects calling the Claude API — a subtitle-formatting pipeline, a reading-map web app, and a daily job that reads securities reports — were all single-request calls with no reassembled history, and all showed zero truncation findings. The daily job also happened to order its context as system, then PDF, then per-analysis instructions, keeping the variable parts at the end — a layout built for caching that matches the append-first remedy.
For a one-time stopgap, the API can be told to drop offending blocks rather than fail, using the thinking-binding-controls-2026-08-01 beta and prefix_mismatch_behavior set to "drop_block"; the dropped items then appear in input_transformations. But since the default differs by surface — error on headerless enforced accounts, drop_block when only the header is sent — setting the behavior explicitly is advised.
Pick your industry and the AI tools you use, and get news related to your work every day.
Free · 30 seconds with Google · unsubscribe anytimeWhat is AIToday? →
Ask AI anything about this article. The AI reads this article, earlier AIToday articles, and Wikipedia, and cites its sources. Q&As are published on this page for other readers too.
ElevenLabs completed a $300 million employee tender at a $22 billion valuation, and co-founder Mati Staniszews…

On October 15, OpenAI announced the Rosalind Academic Plan, giving approved US university labs free access to…

A Qiita article compared automated red-teaming methods for LLM apps — GCG, PAIR, and TAP — using mock implemen…

Liquid AI released d1-ultra on October 15, 2026, an upgraded open-weights decision model that averaged 76.7 ac…

Circlia started a proof-of-concept for TASTE SIGNAL: visitors to Holland Village Cafe FUKUOKA taste cookies an…

In a webinar hosted by French Mathematical Society president Isabelle Gallagher, Fields Medal winner Hugo Dumi…
