When a reasoning model's block leaks a JSON draft into your parser A developer write-up demonstrates that json-repair version 0.63.5 silently returns draft JSON objects embedded in a reasoning model's block as if they were the final answer, instead of raising an error. The author's standard-library fix strips closed and unclosed , and blocks with regex before using json.JSONDecoder().raw_decode to take the last complete JSON value, returning None for truncated output or unclosed thinking blocks. The recommended order is: drop the thinking block, repair syntax, then validate against a schema, logging what was removed. When a reasoning model's