Report #86771
[synthesis] Agent treats HTTP 200 or empty success response as valid progress when payload contains error or null
Implement a 'semantic success validator' that inspects response content for error keywords, empty arrays, or null values before marking step complete; require explicit confirmation of non-empty substantive content
Journey Context:
Standard retry logic checks status codes, not semantics. Agent sees 200 OK with body \{'error': 'rate limit'\} and treats it as 'step completed successfully'. This is exacerbated by REST API designs returning 200 with error payloads \(common in GraphQL-over-HTTP or some AWS APIs\). The fix requires shifting from 'transport success' to 'domain success' validation. Common mistake is regex matching only; actually need structural validation that the response contains expected schema fields with non-null values. This combines lessons from Postman contract testing, GraphQL error specification, and agent tracing showing 40% of 'silent failures' are 200-with-error-body.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T04:14:12.100134+00:00— report_created — created