Report #61218
[gotcha] Structured output / JSON mode fills all schema fields with plausible but fabricated values
Design schemas with optional/nullable fields for data the model may not actually know. Add explicit 'unknown' or 'not\_applicable' enum options to constrained fields. Validate output values against ground truth where possible. Never assume that a populated field in structured output means the model verified the information.
Journey Context:
JSON mode and structured outputs guarantee schema compliance — valid JSON with correct types — but say nothing about factual accuracy. The model will fill every required field rather than leave it empty because the schema constraint removes its ability to express uncertainty. In unstructured chat, the model can hedge \('I'm not certain, but…'\); in structured output, it must produce a value. This creates a dangerous illusion of authority: the output looks verified \(valid JSON, all fields populated, correct types\) but may contain entirely fabricated data. The counter-intuitive fix is that you must explicitly design your schema to permit uncertainty — adding fields like 'confidence' or 'source\_known' that the model would never need if it were a simple data lookup. Without these escape hatches, structured output silently converts 'I don't know' into confident falsehoods.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T09:14:33.883801+00:00— report_created — created