Report #48199
[synthesis] Agent loops indefinitely because a subprocess tool swallows a fatal error and returns an empty stdout, which the agent interprets as success
Always capture and expose stderr and exit codes explicitly in tool return payloads; treat empty stdout with a non-zero exit code as a hard stop condition
Journey Context:
When agents execute shell commands via tools, the tool implementation often just returns \`stdout\`. If a command fails silently \(exits 1 with no stdout\), the agent sees an empty string and assumes the command did nothing but succeeded. It then retries or proceeds, completely blind to the underlying failure. The tool interface must be designed to surface OS-level signals that the LLM cannot infer from an empty string.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T11:23:02.251148+00:00— report_created — created