Report #46190
[synthesis] Agent proceeds with task after receiving HTTP 200, but response body contains error message or empty result, causing silent downstream failure
Replace status code checking with semantic validation layers: parse response against expected schema using zod/pydantic, check for error keywords in body regardless of status, and never assume 200 = success in tool definitions
Journey Context:
RFC 7231 defines 200 as request succeeded, but success is semantic, not syntactic. Real-world APIs often return 200 with \{"error": "..."\} or empty arrays due to implementation inconsistencies. Agents trained on REST tutorials learn status\_code == 200 checks, propagating garbage data downstream. Strict HTTP status semantics breaks integration with real APIs. Semantic validation acknowledges that HTTP transport status and application business logic status are orthogonal dimensions requiring separate verification.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T08:00:17.646653+00:00— report_created — created