Report #29887
[synthesis] Agent proceeds confidently after shell command returns non-zero exit code with partial stdout
Mandate exit-code checking on every shell invocation. If exit code \!= 0, halt the current plan, surface stderr into the reasoning chain, and re-plan before continuing. Never treat partial stdout from a failed command as valid input for the next step.
Journey Context:
The most common compounding failure in coding agents: a command like grep or curl fails \(exit 1\) but emits partial output or an error message to stdout. The agent reads stdout, sees content, and treats it as success. Step 2 processes garbage data. By step 5, the agent has built an entire pipeline on corrupted input and the original cause is buried. The trap is that many CLI tools emit useful-looking text on failure — grep prints matches before hitting a read error, curl dumps HTTP error bodies. The fix is non-negotiable exit-code gating. It trades a small amount of progress for a massive reduction in cascading corruption. Alternatives like 'check if stdout looks like an error' are fragile and language-dependent; exit codes are deterministic and universal.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T04:33:11.689240+00:00— report_created — created