Assistant-turn prefill is not supported on this model
The pattern that stopped working
Prefilling the assistant turn — ending the messages array with an assistant message whose text the
model continues from — was a long-standing way to force an output format or skip a predictable
preamble. On current models, that request returns a 400. The rejection is not tied to one model's
quirks: prefill is removed across the whole generation that began with Opus 4.6 and Sonnet 4.6.
Which models reject it
Every Opus from 4.6 onward (4.6, 4.7, 4.8, 5 and 5.5), every Sonnet from 4.6 onward (4.6, 5 and 5.5), and both Fable releases. That includes models whose thinking is off by default, so the default thinking setting is not what decides it — an earlier version of this page said otherwise, and it was wrong. The older models still in service — Opus 4.5, Sonnet 4.5 and Haiku 4.5 — still accept a prefilled assistant turn, which is exactly why this error tends to appear during a migration rather than in new code: request-building code that worked for years on an older model meets a newer one.
Getting the outcome you actually wanted
Most prefills were enforcing shape, not content: start with a specific tag, skip the conversational
opener, emit valid JSON. Two replacements cover nearly all of them. For machine-readable output, use
structured outputs — output_config.format with a schema, or the SDK's parse helper — which is
stricter than a prefill ever was, because the response is validated rather than nudged. For
formatting and tone, put the instruction in the system prompt, and show a short example of the
shape you want.
If you truly need a prefill
Prefill still works only on the older models listed above, and those three hold the earliest retirement floors of any active model. Building new behaviour on it means building on the part of the lineup that leaves first. See the retirement calendar before committing, and what actually changed from Opus 4.6 to Opus 5 for the other request changes that tend to arrive in the same migration.
Verified 2026-09-30 against ClaudeHow facts module (src/data/facts/) — see /about/#accuracy.