Report #66449
[synthesis] Agent treats HTTP 200 with empty or malformed response body as successful operation when it should retry
Validate semantic content of response \(non-empty required fields, schema match\) before treating HTTP 200 as success; implement specific retry logic for "successful but empty" responses that match failure patterns
Journey Context:
HTTP semantics define 200 OK as "request succeeded," but success in distributed systems often means "request received and processed" not "requested data found and returned." APIs often return 200 with empty JSON objects \`\{\}\`, empty arrays \`\[\]\`, or malformed JSON that passes regex validation but fails semantic parsing. Agents using standard HTTP clients see status===200, proceed to parse the body, receive null/undefined/default values, and treat this as "user has no data" rather than "query failed." This is particularly dangerous in financial or medical contexts where "no records found" vs "query timeout" have vastly different implications. Most retry logic only triggers on 4xx/5xx status codes. The synthesis reveals that you must implement "semantic validation" - checking that required fields exist and match expected patterns - and treat semantic failures as retryable errors even when HTTP status is 200.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T18:00:46.384950+00:00— report_created — created