Vittorio Vittori

Design System Architect / Senior UX Designer

Help Users Recognize, Diagnose, and Recover from Errors

Error messages should be expressed in plain language (no codes), precisely indicate the problem, and constructively suggest a solution.

User-Centered Design
Error handling

Clear Error Identification

Errors should be immediately recognizable as such. Users must clearly understand that something went wrong, without confusing error states with normal system behavior.

off on
Use distinct visual indicators for errors Make error states look like normal content Use consistent error styling across the interface Use different error styles in different contexts Make errors immediately visible Hide errors or make them hard to notice

Constructive Error Messages

Error messages should be written in plain language, explaining the problem without blaming the user or using technical jargon.

Password must be at least 8 characters Password short File upload failed, you can upload images up to 10MB File too large, fix error We couldn’t save your changes, check missing fields You forgot something, please fill in all fields

Error Prevention Feedback

Whenever possible, the system should help users avoid errors by giving early feedback before submission or confirmation.

Provide real-time validation feedback Wait until submission to show errors Show warnings before critical actions Surprise users with errors after they act Guide users toward correct input Let users complete forms with invalid data

Explicit Recovery Guidance

Users should be told exactly how to fix the error or what to do next, rather than being left to guess.

Provide specific steps to resolve the error Leave users guessing what to do next Offer actionable solutions Only describe the problem without solutions Make recovery actions easily accessible Hide recovery options or make them hard to find

Graceful Recovery Actions

After an error occurs, users should be able to recover easily without losing progress or restarting their task.

off on
Preserve user data when errors occur Lose user input when showing errors Allow users to correct mistakes easily Force users to start over after errors Provide undo or revert options Make errors irreversible

Visible Error Context

Errors should appear in context, making it easy for users to understand where and why the problem occurred.

off on
Show errors near the relevant input or action Display errors in unrelated locations Highlight the specific field or element with the error Show generic errors without context Maintain error visibility until resolved Hide errors when users interact with other elements