After a model upgrade, requests that end with a prefilled assistant message now return a 400. What should you do?
Why A is the answer
Use structured outputs or instructions instead
Prefilled responses are not supported starting with Claude 4.6 models, and those requests return a 400. For format control, use structured outputs or clear instructions.
In detail
- Prefilled responses are not supported starting with Claude 4.6 models.
- Those requests return a 400, so use structured outputs or clear instructions.
- Check for prefill before you move to a newer model.
Use case
An illustrative scenario, not a real incident.
After an upgrade, requests ending in a prefilled "{" return a 400. Switching to structured outputs keeps the JSON and removes the error.
See it in different ways
mindmap
root((Prompt))
System
Role
Stable rules
Examples
3 to 5
Varied
Documents
In XML tags
Task
Clear requestflowchart TD
Q{"What was prefill doing?"}
Q -->|"Forcing JSON"| A0["Structured outputs"]
Q -->|"Setting the tone"| A1["Clear instructions"]Key point: Prefill is not supported starting with Claude 4.6 models.
Why the other options are wrong
- B. Retry with exponential backoff
- A 400 will not clear with retries.
- C. Add more text to the prefill
- More prefill text is still prefill.
- D. Keep the prefill, but send it as a second user message after the last turn
- A second user message is not a prefill, and format stays uncontrolled.

