Report #59219
[synthesis] HTTP 200 responses with business logic failures mislead agents into terminating successfully
Parse response bodies for explicit 'status' or 'success' fields; treat HTTP 2xx as transport-layer only, never as task completion.
Journey Context:
Agents interpret HTTP 200 as 'the tool worked.' However, many APIs return 200 with body \{"status": "failed", "error": "insufficient\_funds"\} or partial data. The agent sees the 200, concludes the task is done, and returns to the user. This is a category error: HTTP indicates the request was received and syntactically processed, not that the business operation succeeded. The fix requires schema-level validation that checks for explicit success markers in the response payload, not just status codes. This pattern appears in payment APIs \(Stripe\), booking systems, and any async operation polling where 200 means 'accepted' not 'completed'.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T05:53:26.286912+00:00— report_created — created