My learning 0 of 20 lessons complete
Start lesson 1 →
23 documented entries 5 anti-pattern checks

Error Prevention And Recovery

Validation, undo, retry, fallback, destructive action review, and recovery paths.

Browse all problem families
Learn the family

How does a person keep control when an action goes wrong?

Recovery begins before the error. Clear consequences, suitable constraints, preserved work, and a visible correction path reduce the cost of a mistake.

Use this method

  1. Name the likely error and its consequence.
  2. Add a cue or review step before a consequential action.
  3. Keep the person's work available for correction.
  4. Provide a specific route to retry, undo, restore, or contact support.

Compare the outcome

Strong: A document editor keeps the draft, identifies a conflicting change, and lets the person review versions before saving.

Weak: A document editor replaces the draft with a generic save error and sends the person back to an empty form.

Try it: Choose a task with a meaningful mistake and trace prevention, detection, correction, and confirmation.

Read these patterns first

  1. Error summaryForm submission can produce one or more errors.
  2. UndoThe action is common and mistakes are likely.
  3. RetryA load, save, submit, upload, export, sync, payment, or background request failed for a transient or uncertain reason.

Build the foundation

Review completion across different abilities →

Follow the evidence

Complete study route · 23 entries

Work through the family in order

Begin with the core behavior, apply it in different contexts, then review cases that reveal the quality boundary. Open each entry for its decision rule, states, example, and source trail.

0 of 23 studies complete

Start this family →
6 entries

Build the foundation

Learn the shared task and the core interaction choices.

Lesson 01 / 23

Error summary

Form submission can produce one or more errors.

Type
UI-UX
Sources
2
Trail checked
standardForm recovery summary
Test in lab
Lesson 02 / 23

Retry

A load, save, submit, upload, export, sync, payment, or background request failed for a transient or uncertain reason.

Type
UI-UX
Sources
4
Trail checked
establishedScoped failed-operation retry control
Test in lab
Lesson 03 / 23

Undo

The action is common and mistakes are likely.

Type
UX
Sources
4
Trail checked
establishedPost-action recovery behavior
Test in lab
Lesson 04 / 23

Redo

Users perform reversible sequences of edits and can undo too far.

Type
UX
Sources
3
Trail checked
establishedForward edit-history replay
Test in lab
Lesson 05 / 23

Fallback path

A primary lookup, verification, upload, payment, search, device feature, online-only step, or channel can fail while the user still needs to finish.

Type
UI-UX
Sources
4
Trail checked
establishedUser-directed alternate route when the primary path cannot complete
Test in lab
Lesson 06 / 23

Confirmation dialog

The action is destructive, irreversible, costly, security-sensitive, privacy-affecting, or externally visible.

Type
UI-UX
Sources
4
Trail checked
establishedConsequential alert decision
Test in lab
12 entries

Apply the patterns

Choose a specialized form for the context and follow its complete behavior.

Lesson 07 / 23

Destructive action confirmation

A user has initiated a destructive command that can permanently remove, revoke, reset, deactivate, or cancel something valuable.

Type
UI-UX
Sources
5
Trail checked
establishedFinal destructive commit review
Test in lab
Lesson 08 / 23

Typed confirmation

A severe action affects repository, project, workspace, account, production, security, billing, or organization-wide scope.

Type
UI-UX
Sources
4
Trail checked
establishedExact target phrase gate before severe commit
Test in lab
Lesson 09 / 23

Unsaved changes prompt

A close, cancel, switch, or edit-mode exit would discard unsaved local changes.

Type
UI-UX
Sources
4
Trail checked
establishedDirty-editor decision prompt before closing, canceling, switching, or replacing unsaved edits
Test in lab
Lesson 10 / 23

Exit warning

A route change, tab close, reload, browser Back, external link, or sign-out action can interrupt a task.

Type
UI-UX
Sources
4
Trail checked
establishedAttempted-departure safeguard for unrecoverable in-progress work
Test in lab
Lesson 11 / 23

Autosave recovery

Autosave failed, stalled, expired, or became uncertain while users still have meaningful local work.

Type
UI-UX
Sources
4
Trail checked
establishedRecovery surface for failed or uncertain background saves
Test in lab
Lesson 12 / 23

Version history

Users edit documents, files, pages, design files, records, configurations, or published content over time.

Type
UI-UX
Sources
5
Trail checked
establishedDurable snapshot browser for previous document, file, page, object, or configuration versions
Test in lab
Lesson 13 / 23

Restore from trash

Deleted objects remain recoverable after the user leaves the original workflow.

Type
UI-UX
Sources
3
Trail checked
establishedDurable deleted-object recovery
Test in lab
Lesson 14 / 23

Conflict resolution

A conflict has been detected and a user must choose, merge, save-copy, skip, or commit a result.

Type
UI-UX
Sources
3
Trail checked
standardGuided workflow for reviewing and committing conflict decisions
Test in lab
Lesson 15 / 23

Merge conflict resolver

A pull request, merge request, rebase, merge, or branch update has source-code conflicts that require developer decisions.

Type
UI-UX
Sources
3
Trail checked
standardSource-code branch conflict resolver with file and hunk decisions
Test in lab
Lesson 16 / 23

Session timeout warning

An authenticated session can expire because of inactivity, overall lifetime, assurance policy, or reauthentication requirement.

Type
UI-UX
Sources
4
Trail checked
establishedAuthenticated-session expiry and reauthentication boundary warning
Test in lab
Lesson 17 / 23

Permission recovery

A denied user can request access, switch accounts, ask an admin, join a group, or use a safe fallback to continue.

Type
UI-UX
Sources
3
Trail checked
standardGuided workflow for regaining or routing around missing access
Test in lab
Lesson 18 / 23

Graceful degradation

The product can express the core task with standard controls, server-rendered content, or a simpler same-surface interaction.

Type
UI-UX
Sources
5
Trail checked
establishedReduced-capability same-surface experience that preserves the core task
Test in lab
5 entries

Review the quality risks

Study failure cases and identify the better recovery route.

Lesson 19 / 23

Confirmation fatigue

Use this anti-pattern entry to audit products that ask for confirmation on many routine actions or use identical prompts for different levels of risk.

Type
UI-UX
Sources
5
Trail checked
anti-patternAnti-pattern where repeated low-value confirmations train users to dismiss real risk prompts automatically
Test in lab
Lesson 20 / 23

Ambiguous destructive action copy

Auditing destructive dialogs, action sheets, menu items, command palette actions, delete receipts, account cancellation flows, permission revocation, bulk actions, and high-impact execution reviews.

Type
UI-UX
Sources
5
Trail checked
anti-patternDestructive copy anti-pattern
Test in lab
Lesson 21 / 23

Disabled controls without recovery

Auditing disabled primary actions, toolbar commands, menu items, toggles, form controls, checkout actions, invite flows, publish controls, exports, destructive actions, and workflow steps.

Type
UI-UX
Sources
7
Trail checked
anti-patternBlocked-control anti-pattern
Test in lab
Lesson 22 / 23

Fake undo

Use it when a toast undo, command undo, bulk undo, or keyboard undo may hide partial restoration, expired windows, external effects, or overwritten recovery state.

Type
UI-UX
Sources
5
Trail checked
anti-patternAnti-pattern where a recovery affordance promises undo but cannot restore the prior state
Test in lab
Lesson 23 / 23

Validation that clears user input

Use this anti-pattern entry to audit forms, editors, imports, checkouts, onboarding flows, and configuration screens where validation can erase recoverable user work.

Type
UI-UX
Sources
6
Trail checked
anti-patternAnti-pattern where validation or failed submission destroys recoverable user-entered values
Test in lab

Saved items