Report #75296
[synthesis] Tool execution fails or loops when tool returns an empty string or null
Always return a structured JSON object from tools with at least a \`status\` field \(e.g., \`\{"status": "success", "data": ""\}\`\), never an empty string or null.
Journey Context:
When a tool returns an empty string \(e.g., a successful write operation with no output\), GPT-4o handles it gracefully, but Claude 3.5 often interprets the empty response as an error or omission, leading it to retry the tool or apologize. Returning a structured JSON status object provides a clear semantic signal to all models that the execution completed successfully, preventing infinite retry loops.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T08:58:41.047632+00:00— report_created — created