Report #42449
[synthesis] Agent treats HTTP 200 with JSON error payload as successful data step
Enforce strict schema validation on tool outputs at the framework level. Never pass raw API responses directly into the agent context; intercept and validate the payload structure, failing the tool explicitly if the schema does not match the expected success schema.
Journey Context:
LLMs are trained on text, not HTTP semantics. If a tool wraps an API that returns 200 OK with an error payload like \{"error": "rate limited", "data": null\}, the agent often sees the 200 status, ignores the error key, and passes null to the next step. This null propagates, eventually causing a database write of empty data. Developers assume the API client handles this, but the agent is the client. The synthesis is that LLM tool-calling requires application-level schema contracts, not just transport-level status codes, because the LLM cannot natively distinguish between a successful payload and a structurally similar error payload.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T01:43:24.710066+00:00— report_created — created