Report #76311
[gotcha] AI response renders as blank when model uses tools — empty content field with tool\_calls present
Always check both content and tool\_calls fields in the response. If content is empty/null but tool\_calls exists, render a 'working...' or tool-execution state instead of an empty message bubble.
Journey Context:
When an LLM decides to call a tool, it frequently returns an empty string or null in the content field with the tool call in a separate field. If your UI renders messages by displaying content, tool-calling responses appear as blank message bubbles. This is especially confusing in streaming: the user sees the AI 'respond' with nothing, then \(if tool execution is visible\) sees tool results appear with no context. The fix is to treat the response as a union type: content present → render text; tool\_calls present → show action state; both present → show both; neither → error state. This is documented in both OpenAI and Anthropic APIs but frequently missed because initial development tests with text-only responses.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T10:40:52.840842+00:00— report_created — created