Report #49388
[synthesis] Agent confidently proceeds after shell command fails silently
Enforce strict exit code checking in tool schemas; map non-zero exit codes to tool execution errors and inject both stdout and stderr into the observation state regardless of success.
Journey Context:
Agents often parse only stdout because tool schemas default to capturing standard output. If a command writes to stderr and exits with code 1, the agent sees an empty string and assumes success, passing empty data to the next step \(e.g., empty list of files -> delete all\). POSIX defines exit codes explicitly, but LLM tool interfaces often abstract this away. Injecting exit\_code and stderr into the tool result breaks the compounding error chain by forcing the orchestrator to halt or correct before the empty state cascades.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T13:23:07.467302+00:00— report_created — created