Failure Disclosure

Failure disclosure is an AI UX pattern that clearly signals when the system could not answer, a tool failed, confidence is too low, or results are empty, instead of writing confident prose over a miss. Distinct error states help users recover and calibrate long-term trust.

Share

Interactive demo

Schedule a 30 min sync with Dana next Tuesday

I tried to create the calendar event. The action did not complete.

Action blocked

Could not create calendar event

Title Product sync with Dana

Guest dana@partnerco.com (external)

When Tue Apr 22, 2:00 PM, 30 min

Policy

External guests require manual approval before invites send.

Overview

The design problem

How might we signal when the AI hits a real wall so people trust the product long term instead of calibrating to confident misses?

Use this pattern

When silence or hedging would mislead

  • Agent or tool flows where a blocked call, empty search, or low confidence is a real miss, not a loading state.
  • Products where downstream users or systems need to handle failures differently from successes.
  • High-stakes domains where invented completion erodes trust faster than an honest stop.
  • Any surface paired with recovery: clear signal first, then retry, fallback, or human handoff.

Avoid this pattern

When failure chrome would cry wolf

  • Transient loading moments better served by skeletons than failure chrome.
  • Soft hedges on every answer when the system did succeed; reserve failure UI for real blocks.
  • Internal-only tooling where structured logs matter more than end-user failure copy.

States

Design the failure lifecycle, not only an error toast at the edge of a normal answer.

Failure disclosure lifecycle

Loading diagram…

  1. 01

    Attempting

    The agent selected an action or retrieval path. Outcome is still unknown.

  2. 02

    Failed

    A tool, search, or policy blocked the path. The miss is named, not smoothed over.

  3. 03

    Explained

    Cause is visible when known: policy rule, rate limit, empty results, or low confidence.

  4. 04

    Bounded

    What did NOT happen is explicit: no write, no send, no charge, no fabricated result.

  5. 05

    Recoverable

    Next steps are offered: retry, edit inputs, wait, escalate, or talk to a human.

  6. 06

    Resolved

    The user acted or accepted the stop. The thread records the honest outcome.

Key UX elements

The parts that must be present for an honest miss to build trust.

Signal

Name the failure plainly.

Use a distinct status and title ("Action blocked", "Could not complete") so the miss is unmistakable.

Reason

Say why when you know it.

Policy, rate limit, empty search: a concrete cause beats a generic "something went wrong."

Boundary

State what did NOT happen.

Explicit negatives ("Nothing was written", "No message was sent") prevent users from assuming silent success.

Next

Offer a recovery path.

Retry, edit inputs, request approval, or escalate. Never leave a dead end after a real failure.

Tone

Stay factual, not cheerful.

Skip hedging and invented completion. Honest copy calibrates trust better than upbeat prose over a miss.

Anti-patterns to avoid

  • Cheerful hallucination that invents sources or “completed” tool results.

  • Generic “Something went wrong” with no cause or next step.

  • Same visual style as a normal answer, so users miss the failure.

  • Retry that loops forever without escalating or changing strategy.

How products use it

ProductImplementation
PerplexityStates when search coverage is weak and leans on sources rather than invented claims.
ClaudeCan decline or state uncertainty instead of fabricating when evidence is missing.
Cursor AgentSurfaces blocked tool calls and failed steps in the agent trace.
ChatGPTShows clear tool or browsing failures rather than pretending the action succeeded.

Implementation

Copy this prompt to generate a production-ready implementation in Cursor, Claude Code, Lovable, or any AI coding agent.

Generate a production-ready implementation of the "Failure Disclosure" AI interface design pattern.

Pattern Definition:

Frequently asked questions

What is failure disclosure in AI UX?

Failure disclosure means the product visibly names when it cannot answer, a tool failed, or confidence is too low, instead of covering the miss with confident-sounding text. It is a core honesty pattern for long-term trust.

How is failure disclosure different from error recovery strategies?

Failure disclosure is how the UI signals the miss to the user. Error recovery strategies define what the system does next (retry, fallback, escalate). Good products combine both: clear signal plus a recovery path.

What should a failure state include?

State what failed in plain language, why if known (empty search, rate limit, blocked tool) and what the user can do next (rephrase, attach context, retry, or talk to a human).

Weekly AI UX in your inbox

Weekly AI interface UX notes and resources on Substack, no spam, unsubscribe anytime.

Subscribe on Substack