Report #71521
[synthesis] HTTP 200 responses with partial or empty data sets are interpreted as successful task completion when the semantic goal remains unfulfilled
Define explicit 'completion criteria' that validate business logic outcomes, not just transport-layer success; treat empty collections and null fields as potential failure modes requiring investigation
Journey Context:
Agents typically check status codes and try-catch blocks. When an API returns 200 OK with \{'results': \[\]\} or missing expected fields, the agent treats this as 'task complete' and proceeds. The root cause is conflating transport success \(HTTP\) with domain success \(business logic satisfied\). Common mistake: adding retries on 5xx but ignoring 200-with-empty-body. Alternative: strict schema requiring non-empty arrays, but this breaks legitimate 'no results found' scenarios. The correct approach is separating 'call succeeded' from 'intent satisfied' - the agent must explicitly check if the retrieved data actually solves the problem \(e.g., 'I need a user ID' → checking that the ID exists and is valid, not just that the HTTP round-trip completed\). This requires maintaining an explicit goal state against which to diff the current state.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T02:37:40.761278+00:00— report_created — created