Back to compare picker

Toast notification vs Toast-only critical error vs Error state vs Undo

Use a toast notification for brief non-blocking feedback; use error state for recoverable failures, undo for reversible completed actions, and treat toast-only critical errors as a failure of persistence and recovery.

Learn the decision

Match the interaction to the person's task

Use a toast notification for brief non-blocking feedback; use error state for recoverable failures, undo for reversible completed actions, and treat toast-only critical errors as a failure of persistence and recovery.

Toast notification

Use it when: Use for short non-blocking confirmation after explicit actions such as save, copy, send, archive, invite, or queue export.

Make this state clear: Stacked state with newest and older messages ordered predictably and capped.

Observe the result: A completed archive action shows a short toast and a specific Undo action because the prior state can be restored.

Study the full pattern →

Toast-only critical error

Use it when: Use this anti-pattern entry to identify and replace transient-only handling of payment, save, permission, account, upload, deletion, and security failures.

Make this state clear: Pre-action state that shows what the user is attempting and what will be affected.

Observe the result: After the notification disappears, users can still see that the invoice is unpaid, why payment failed, and which recovery actions are available.

Study the full pattern →

Error state

Use it when: A system or task failure blocks expected content or action.

Make this state clear: Normal expected state before failure.

Observe the result: User input and filter context are preserved after failure, and retry returns to recovered content or a clear still-failed state.

Study the full pattern →

Undo

Use it when: The action is common and mistakes are likely.

Make this state clear: Normal state before the user action.

Observe the result: Undo restores the deleted task to the list and reports Quarterly report restored.

Study the full pattern →

Practice the judgment: Imagine this situation: A save success toast appears for every keystroke and overwhelms the page with repeated confirmations. Write the person's goal, choose one of these patterns, and show the state that helps the person continue. Use the decision rules and source trail below to explain your choice.

Review the underlying principle →

Decision dimensions

Dimension Toast notificationToast-only critical errorError stateUndo
UI or UX UI + UX - Transient non-modal status messageUI + UX - Transient critical-feedback anti-patternUI + UX - Recoverable failure surfaceUX - Post-action recovery behavior
UI guidance Render toast notifications in a consistent non-modal region with short status text, clear severity, an optional close control, and at most one concise action.Replace a lone disappearing toast with a persistent failure region attached to the affected task, using a heading that names the failed payment, save, upload, permission, or destructive action.Render a persistent error region near the affected content with a specific failure heading, plain-language cause, preserved context, and recovery actions.Show a named recovery affordance after the completed action, such as Undo delete for a specific task, near the result or in a consistent status region.
UX guidance Escalate to inline, section, dialog, notification center, undo, or error-state treatment when the message requires repair, proof, long reading time, several actions, or reliable recovery.Protect users from losing the only explanation for a high-consequence failure by keeping the problem, affected object, and next action available after the notification times out.Match the next action to the failure cause: retry transient failures, edit correctable input, use cached fallback for read-only continuity, or provide support reference when recovery is outside the UI.Let users move quickly through frequent reversible actions, then recover from mistakes after seeing the result.
Good UI Export started appears in the top notification region with a timestamp, close control, and View jobs action that remains available in activity history.A failed invoice payment leaves a persistent alert inside the invoice panel with Retry payment, Update card, and Contact billing actions.A failed save state keeps the draft visible and labels the support reference separately from the user-facing explanation.Deleting Quarterly report removes it from the list and shows a recovery panel saying Quarterly report deleted with an Undo task button.
Bad UI Five unrelated toasts pile up over the Save and Continue controls.The user misses the only error message and repeats the failed action.Tiny transient toast for a blocking failure.Undo action disappears before users can activate it.
Good UX A completed archive action shows a short toast and a specific Undo action because the prior state can be restored.After the notification disappears, users can still see that the invoice is unpaid, why payment failed, and which recovery actions are available.User input and filter context are preserved after failure, and retry returns to recovered content or a clear still-failed state.Undo restores the deleted task to the list and reports Quarterly report restored.
Bad UX Every autosave tick triggers a toast, training users to ignore real status changes.Users have to guess whether the payment, save, delete, or upload succeeded after the toast timed out.Clearing work after save failure.The UI promises undo for a side effect that has already notified external recipients.
Best fit Use for short non-blocking confirmation after explicit actions such as save, copy, send, archive, invite, or queue export.Use this anti-pattern entry to identify and replace transient-only handling of payment, save, permission, account, upload, deletion, and security failures.A system or task failure blocks expected content or action.The action is common and mistakes are likely.
Avoid when The message is the only recovery path for a blocking or high-consequence failure.A toast supplements a persistent error state, inline validation message, undo affordance, or notification center item that users can revisit.Nothing exists yet and the state is expected.Recovery would restore only part of the user's lost work.
Required state Stacked state with newest and older messages ordered predictably and capped.Pre-action state that shows what the user is attempting and what will be affected.Normal expected state before failure.Normal state before the user action.
Accessibility burden Keep close and action controls keyboard reachable, clearly named, and stable while focused.Place persistent error text and recovery controls in the reading order near the affected task.Use appropriate alert or status semantics for newly appearing critical errors.Make the undo control keyboard reachable and programmatically identifiable.
Common misuse Using a toast as the only feedback for payment, save, permission, upload, or security failures.Using a disappearing snackbar as the only feedback for failed save, failed delete, failed permission change, failed upload, or failed authentication.Using a transient toast for critical errors.Restoring only part of the prior state while implying full recovery.

Toast notification

UI or UX
UI + UX - Transient non-modal status message
UI guidance
Render toast notifications in a consistent non-modal region with short status text, clear severity, an optional close control, and at most one concise action.
UX guidance
Escalate to inline, section, dialog, notification center, undo, or error-state treatment when the message requires repair, proof, long reading time, several actions, or reliable recovery.
Good UI
Export started appears in the top notification region with a timestamp, close control, and View jobs action that remains available in activity history.
Bad UI
Five unrelated toasts pile up over the Save and Continue controls.
Good UX
A completed archive action shows a short toast and a specific Undo action because the prior state can be restored.
Bad UX
Every autosave tick triggers a toast, training users to ignore real status changes.
Best fit
Use for short non-blocking confirmation after explicit actions such as save, copy, send, archive, invite, or queue export.
Avoid when
The message is the only recovery path for a blocking or high-consequence failure.
Required state
Stacked state with newest and older messages ordered predictably and capped.
Accessibility burden
Keep close and action controls keyboard reachable, clearly named, and stable while focused.
Common misuse
Using a toast as the only feedback for payment, save, permission, upload, or security failures.

Toast-only critical error

UI or UX
UI + UX - Transient critical-feedback anti-pattern
UI guidance
Replace a lone disappearing toast with a persistent failure region attached to the affected task, using a heading that names the failed payment, save, upload, permission, or destructive action.
UX guidance
Protect users from losing the only explanation for a high-consequence failure by keeping the problem, affected object, and next action available after the notification times out.
Good UI
A failed invoice payment leaves a persistent alert inside the invoice panel with Retry payment, Update card, and Contact billing actions.
Bad UI
The user misses the only error message and repeats the failed action.
Good UX
After the notification disappears, users can still see that the invoice is unpaid, why payment failed, and which recovery actions are available.
Bad UX
Users have to guess whether the payment, save, delete, or upload succeeded after the toast timed out.
Best fit
Use this anti-pattern entry to identify and replace transient-only handling of payment, save, permission, account, upload, deletion, and security failures.
Avoid when
A toast supplements a persistent error state, inline validation message, undo affordance, or notification center item that users can revisit.
Required state
Pre-action state that shows what the user is attempting and what will be affected.
Accessibility burden
Place persistent error text and recovery controls in the reading order near the affected task.
Common misuse
Using a disappearing snackbar as the only feedback for failed save, failed delete, failed permission change, failed upload, or failed authentication.

Error state

UI or UX
UI + UX - Recoverable failure surface
UI guidance
Render a persistent error region near the affected content with a specific failure heading, plain-language cause, preserved context, and recovery actions.
UX guidance
Match the next action to the failure cause: retry transient failures, edit correctable input, use cached fallback for read-only continuity, or provide support reference when recovery is outside the UI.
Good UI
A failed save state keeps the draft visible and labels the support reference separately from the user-facing explanation.
Bad UI
Tiny transient toast for a blocking failure.
Good UX
User input and filter context are preserved after failure, and retry returns to recovered content or a clear still-failed state.
Bad UX
Clearing work after save failure.
Best fit
A system or task failure blocks expected content or action.
Avoid when
Nothing exists yet and the state is expected.
Required state
Normal expected state before failure.
Accessibility burden
Use appropriate alert or status semantics for newly appearing critical errors.
Common misuse
Using a transient toast for critical errors.

Undo

UI or UX
UX - Post-action recovery behavior
UI guidance
Show a named recovery affordance after the completed action, such as Undo delete for a specific task, near the result or in a consistent status region.
UX guidance
Let users move quickly through frequent reversible actions, then recover from mistakes after seeing the result.
Good UI
Deleting Quarterly report removes it from the list and shows a recovery panel saying Quarterly report deleted with an Undo task button.
Bad UI
Undo action disappears before users can activate it.
Good UX
Undo restores the deleted task to the list and reports Quarterly report restored.
Bad UX
The UI promises undo for a side effect that has already notified external recipients.
Best fit
The action is common and mistakes are likely.
Avoid when
Recovery would restore only part of the user's lost work.
Required state
Normal state before the user action.
Accessibility burden
Make the undo control keyboard reachable and programmatically identifiable.
Common misuse
Restoring only part of the prior state while implying full recovery.
Decision rules
  • Choose toast notification when the user has just completed a low-risk action, background work changed state, or a short status update is useful without blocking the current task.
  • Choose error state when the message names a failed load, save, payment, permission, upload, or destructive operation that users must inspect or repair after the moment passes.
  • Choose undo when the product can restore the exact prior state of a completed reversible action and the toast or snackbar is carrying a specific recovery control.
  • Flag toast-only critical error when the disappearing message is the only place that explains failure consequence, support reference, retry path, or unpaid/unsaved state.
  • Use a notification center, activity log, or inline status when users may need to revisit the message after auto-dismissal, such as export-ready, approval-required, or compliance notices.
  • Limit toast actions to one short contextual action such as Undo or View; move multi-step resolution, form correction, or support instructions into a persistent surface.
  • Do not stack unrelated toasts indefinitely; cap visible messages, preserve recency order, and avoid covering primary controls or assistive technology focus targets.
  • Announce toast status without stealing focus unless the toast contains an action that must be operated immediately and remains available long enough to use safely.
Inspect live examples
Failure modes
  • A save success toast appears for every keystroke and overwhelms the page with repeated confirmations.
  • A failed payment toast disappears and leaves no persistent invoice recovery path.
  • An Undo action vanishes before keyboard or screen reader users can reach it.
  • Several export-ready messages stack over the primary submit button and hide the current task.
  • The toast says Done without naming the object, action, or resulting state.
  • A long compliance notice is squeezed into a two-line toast instead of a durable message surface.

Saved items