The moment a model's output feeds code instead of a person, format becomes a correctness problem. A database insert, a UI component or another service expects fields with specific names and types. A model that is right 99 times and returns a chatty sentence the hundredth time still crashes the hundredth request.
Michael Brenndoerfer's guide to constrained decoding lists the failure modes that appear even with careful prompting: syntax errors such as missing commas and unmatched brackets, schema violations such as invented fields, missing required fields and wrong types, encoding problems with unescaped characters, and format drift, where the model starts with JSON and slides into an explanation (Brenndoerfer, Constrained decoding). His explanation of the cause is useful: each token is sampled given the context so far, and nothing in ordinary generation enforces a global rule such as "close this brace three tokens from now."
Some of these failures are subtle. A response like {"name": "Carol", "age": "twenty-five"} parses as valid JSON and still breaks any code that expects a number. Checking that output parses is not the same as checking that it matches what your code needs.



