Report #93378
[synthesis] Partial tool success \(HTTP 206 Partial Content or soft failures\) masks total failure causing agent to chain off corrupted intermediate state
Implement 'zero-trust tool results' parsing: explicitly check for HTTP 206 status codes, GraphQL 'errors' arrays in 200 responses, and database warning counts; treat any partial result as a hard failure and require explicit user confirmation or a separate 'allow\_partial' flag before proceeding, never chain operations on 'best effort' data by default
Journey Context:
HTTP 206 Partial Content \(range requests\), GraphQL partial errors \(returning HTTP 200 with an 'errors' array alongside 'data'\), and SQL 'success' with warning counts \(e.g., '3 rows affected, 1 warning'\) are invisible to standard error handling that checks only for exceptions or 5xx status codes. The agent sees HTTP 200 and assumes full success, unaware that the data is truncated \(e.g., only first 1000 rows of a query\) or contains nulls where real data should be. This is especially dangerous with file operations \(partial writes\) or search \(result set capped at max\_results\). The assumption that 'no exception = success' is fatal at the agent level because it leads to cascading compounding errors \(calculations on truncated data, updates to partial record sets\). You must parse result metadata \(Content-Range headers, GraphQL errors array, SQL warnings\) and treat partial results as failures unless explicitly configured otherwise.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T15:19:20.718241+00:00— report_created — created