XIV · Anti-PatternsAnti-pattern

Fail-Plausible Narration

also known as Fail-Plausible, Failure-Triggered Fabrication, Errors Become Narratives

Anti-pattern: when a step fails, the model fills the gap with fluent, plausible content instead of surfacing the error, so the deliverable reads as success and the observer is deceived rather than merely uninformed.

Context

A long-running agent produces deliverables — briefings, reports, summaries, answers — assembled from many upstream steps: fetches, tool calls, scheduled jobs, memory reads. In routine operation nobody cross-checks each step; the deliverable is the only surface the observer sees. Somewhere in that chain a step starts failing: a token expires, an endpoint moves, a query times out, a file goes missing.

Problem

A generative model completes the most plausible continuation, and after a missing observation the most plausible continuation is the content that would have been there had the step succeeded. The error therefore never reaches the deliverable: the model reconstructs a schedule from stale memory, invents the numbers a timed-out query should have returned, and narrates the result in the same confident voice as a healthy run. Monitoring that watches the output channel sees well-formed deliverables; the failure does not just go unreported — the observer is convincingly lied to by the failure itself, and the defect persists for weeks because every trace of it has been narrated away.

Forces

  • The most plausible next token after a gap is the content that would have followed a success, so fabrication is the model's default behaviour, not an exception path.
  • Scheduled, long-running agents deliver into channels nobody audits step-by-step, so the narrated output is the only signal the observer gets.
  • Hard-failing on every upstream hiccup makes an assistant unusable in daily operation, which pushes builders to swallow errors — and a swallowed error is exactly the gap the model narrates over.

Example

A morning-briefing agent's calendar fetch starts returning 401 after a token expires. Instead of an error, each day's briefing describes a plausible schedule reconstructed from stale memory, in the same confident voice as always. The user discovers the failure two weeks later, when the briefing lists a meeting that was cancelled days earlier — and then has to distrust every briefing since the token expired.

Diagram

Solution

Therefore:

Don't. Treat the deliverable as a claim about observations and make every claim carry its source. Propagate structured error states from tools and jobs into the generation step, and require the output to disclose them: a briefing whose calendar fetch failed says so and omits the section rather than reconstructing it from memory. Distinguish fresh observation, cached data, and model reconstruction explicitly, and forbid presenting the latter two as the former. Test the error path deliberately — kill a dependency in staging and check whether the deliverable discloses the failure or papers over it; the paper documenting the mechanism found seventy percent of silent failures were caught by human observation rather than by any test, which is the signature of deliverables that lie fluently.

What this pattern forbids. A step that failed must never contribute fabricated content to the deliverable: the error state must propagate into the output as an explicit gap or degraded-mode notice, and content whose source observation is missing cannot be presented as fresh or verified.

The patterns that counter or replace it —

  • complementsPhantom Action CompletionAnti-pattern: the agent reports a side-effecting action as complete from its own narration, when the tool call silently failed or never ran and nothing checked that the effect occurred.
  • complementsObservability Fail-OpenAnti-pattern: build an agent's monitoring and diagnostic tools to fail open, so when telemetry is blocked, denied, or missing they return a default healthy reading and operators see green while the system is broken.
  • complementsAgent Confession as ForensicsAnti-pattern: after an agent-caused incident, the team treats the agent's confabulated self-narrative as the forensic record and root cause, even though the self-report is generated rather than remembered and can be flatly wrong.
  • complementsErrors Swept Under the RugAnti-pattern: scrub failed actions, stack traces, and error observations from the agent's own context so the trace looks clean, leaving the model with no evidence of what did not work.
  • alternative-toGraceful Degradation★★When a dependency fails, downgrade the user-facing experience to a working subset rather than failing entirely.

Neighbourhood

Click any neighbour to follow the language. Scroll to zoom, drag to pan.