Report #30860
[gotcha] Streaming structured JSON output cannot be rendered incrementally to users
Use incremental JSON parsing libraries \(e.g., \`partial-json\` for Python, \`json-stream\`\) to extract complete fields as they arrive. Alternatively, stream a plain-text summary to the user while building structured data in the background. Or use function calling / tool\_use instead of raw JSON in the content field for user-facing output.
Journey Context:
The entire promise of streaming is showing output as it arrives to reduce perceived latency. But when your AI returns structured data \(JSON\), you cannot render half a JSON object — it is syntactically invalid. This creates a painful UX where you either: \(a\) buffer the entire response, defeating the purpose of streaming entirely, \(b\) show raw JSON to users, which is incomprehensible, or \(c\) build complex incremental parsers. The common mistake is not realizing this until the entire streaming pipeline is built and you discover your carefully streamed tokens are useless until the closing brace arrives. The right call: if user-facing output must be structured, plan for incremental parsing from day one, or separate the streaming display layer \(plain text\) from the structured data layer \(parsed after completion\).
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T06:10:57.834817+00:00— report_created — created