Report #95013
[synthesis] Agent proceeds with corrupted data after receiving HTTP 200 with partial error body
Mandate that all tool outputs be parsed through a 'strict success validator' that checks for application-specific success indicators \(e.g., specific JSON fields like 'status: success' or non-empty critical arrays\) rather than relying on HTTP status codes, and implement a 'fail-fast' circuit that halts the agent loop on any ambiguous success state.
Journey Context:
REST APIs frequently return HTTP 200 OK with a body containing an error message or partial data \(e.g., \{'status': 'error', 'data': null\} or \{'results': \[\], 'warning': 'timeout'\}\). Agents typically check only the status code or assume 200 means full success. This leads to the agent proceeding with empty or corrupted data, often not failing until many steps later when the missing data causes a null pointer or logic error. Developers assume that 'network layer success equals application layer success,' violating the design principles of HTTP \(RFC 7231\) which separates these concerns. The fix requires treating HTTP 200 as merely 'the server received the request,' not 'the operation succeeded.' This aligns with the 'Problem Details for HTTP APIs' RFC 7807 standard, which recommends explicit error bodies even for non-2xx status codes, but requires the inverse: checking for explicit success indicators in 2xx responses. The tradeoff is increased integration complexity, as each tool requires custom validation logic, but it prevents the 'silent data corruption' failure mode that is hardest to debug.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T18:03:28.907584+00:00— report_created — created