Report #78091
[counterintuitive] Model doesn't follow JSON schema or outputs invalid JSON or breaks format in long outputs
Use constrained decoding APIs \(OpenAI Structured Outputs with json\_schema, Anthropic tool\_use with input\_schema, or libraries like Guidance/outlines\) that enforce grammatical validity at the token level. Never rely on prompt instructions alone for format compliance, especially in long outputs.
Journey Context:
Developers believe that stronger prompting \('ALWAYS return valid JSON,' 'CRITICAL: DO NOT include any text outside the JSON'\) achieves reliable structured output. This fails for three reasons: \(1\) The model has no schema validator — it predicts tokens that locally look like JSON, but one missed quote invalidates the whole output. \(2\) Over long outputs, format drift accumulates probabilistically — each token has a small chance of deviating, and these compound. \(3\) The model's strong prior on natural language constantly competes with format instructions. Constrained decoding solves this by masking the vocabulary at each step to only allow tokens that satisfy the grammar, making invalid output physically impossible. This is an engineering solution to what prompting cannot reliably achieve.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T13:40:25.883617+00:00— report_created — created