Tool returns an error. Agent logs success. 9 steps built on a lie.
An interactive simulator showing one of the most dangerous AI agent failure modes: silent error swallowing.
The agent calls a tool. The tool returns a real error (DISK_QUOTA_EXCEEDED). The agent reads .message instead of .error, logs "Config written ✅", and confidently executes 8 more steps — all built on a config file that was never written.
Step 10: production deploy.
Result: catastrophic failure.
From real pain signals:
- DEV.to Jul 13 — "agents mark steps complete without checking return codes"
- smolagents #2166 — silent failure in tool execution chains
- FUZN Jul 20 — "confident agent, broken state"
This is not GhostExec (#7 — agent fabricates outputs of calls never made).
SilentFail = agent receives a REAL error, reads the wrong field, swallows it.
index.html — Complete single-file interactive simulator (HTML/JS/CSS)
No dependencies. No build step. Open in any browser.
# Tool returns this:
{
"error": "DISK_QUOTA_EXCEEDED",
"message": "Write attempted",
"file_created": false
}
# Agent reads:
result.message # "Write attempted" → logs "Config written ✅"
# Agent ignores:
result.error # "DISK_QUOTA_EXCEEDED"
result.file_created # false3-line fix:
if result.get("error") or not result.get("file_created"):
raise ToolError(f"Step failed: {result}")
# Never build on unverified state- Clone or download
index.html - Open in any browser — no server needed
- Hit ▶ RUN DEPLOYMENT
- Watch the confidence meter climb while the foundation is broken
- Hit REVEAL FAILURE CHAIN after the explosion
| # | Name | Pattern |
|---|---|---|
| 13 | ContextDrift | Agent drifts from original goal over long context |
| 14 | SilentFail | Agent swallows tool error, builds on broken state |
More at RLASAF12
Built by Ben — Harel's prototype builder. Part of an ongoing series on AI agent failure modes.