How to Write Error Messages That Help Users, Not Frustrate Them
This article explains why error handling is often neglected in UX, outlines common error types, and provides practical guidelines—such as using conversational language, avoiding excessive humor, employing active voice, offering clear solutions, and maintaining consistent patterns—to create helpful, user‑centric error messages.
This article is translated from “How to write error messages that actually help users rather than frustrate them” and introduces key considerations for error message design in interaction design.
In modern user experience, error handling is one of the most overlooked parts. While we focus on smooth usage flows, we often forget to give the same care and attention when problems arise.
Digital products are filled with meaningless error codes that only developers understand and odd phrasing that frustrates users. Even when we write useful error copy, we rarely document these decisions or encode them into standards, making reuse and standardization difficult.
The following guidelines show how to create error messages that help users recover quickly and continue using your product or service.
Consider the Types of Errors Users May Encounter
The first step in planning and writing good error messages is to identify the different error types that may appear in the user experience, for example:
Form errors caused by missing or incorrect data
Validation errors when users submit data
Error pages such as 404 (page not found) or 500 (internal server error)
Search queries with no results
Network connection loss
Thoroughly reviewing all possible failure points in the experience helps avoid unexpected error messages appearing to users.
Write Like You’re Having a Conversation
Fortunately, absurd error messages are becoming less common. Five to ten years ago, you often saw messages like “Error: exception handling code: 038638638638”.
However, when writing error messages we still tend to sound robotic. Saying “An error occurred” is meaningless, akin to saying “Something went wrong” and then walking away.
Instead, imagine sitting next to the user and gently guiding them through the problem. Read your content aloud and see if it sounds like a real‑life conversation.
Don’t: “Invalid input” → Do: “Enter the 6‑digit code we emailed you.”
Don’t: “No Wi‑Fi detected” → Do: “It looks like you’re offline. Connect to a Wi‑Fi network and try again.”
Monzo bank provides a great example. If a user tries to view loan options on the website (which is only available in the app), they simply show: “You’ll need your phone for that.”
They also provide a more detailed explanation of the issue and a QR code for quick access. In practice, Monzo’s approach feels action‑oriented enough that you might not even consider it an error message.
Avoid Overly Playful Tone
While a conversational style is good, it should not be excessive. Saying “Hmm, something seems off” or showing a sad robot illustration on a 404 page can easily anger frustrated users.
Recently, an online retailer called me a “little fool” because I missed a dot in my email address, and I immediately abandoned the cart. When problems arise, I don’t need a funny aunt; I need a solution.
Errors create usage barriers. Sometimes they’re unavoidable, but respecting users means prioritizing clear expression and empathy—now is not the time for “injecting personality”.
If a user is under pressure, an overly playful message can make them feel dismissed. Imagine being late for a job interview and the train‑ticket app shows a “Oops!” prompt.
Ask yourself:
Is this message still useful to someone in a bad mood?
Does this phrasing downplay the seriousness of the problem?
Are we helping the user solve the issue or just showing off?
If in doubt, tone it down.
Use Active Voice
Generally, using active voice is one of the best ways to improve UX copy, especially for error messages.
Active voice makes it clear who is doing what, whereas passive voice is vague.
For example:
“Your submission cannot be processed.” – Who can’t process it? What’s the problem? What should I do?
“We cannot process your application because the file type you uploaded is not supported. Please re‑upload a JPEG file and try again.” – Clear responsibility and next steps.
Active voice clarifies responsibility, makes the explanation harder to ignore, and helps users continue their tasks.
Provide Clear Solutions
Errors usually fall into two categories:
Errors users can fix, such as form errors or network loss
Errors users cannot fix, such as system failures
In both cases, offering the next step is crucial.
For fixable errors, clearly state what the user needs to do.
Don’t: “Payment failed” → Do: “Check that your card details are correct or try a different payment method.”
Don’t: “Name field cannot be empty” → Do: “Please enter your name.”
For unfixable errors, tell the user what to do next, e.g., for a 500 internal server error:
Provide an action suggestion: “Please try again later.”
Offer alternative contact: “If you need immediate help, call [phone number].”
Explain data handling: “We have saved your response and will retain it for 30 days.”
The Wellcome Trust, for example, shows suggestions when a search returns no results.
The UK government’s GOV.UK design system also provides specific error messages for known fields (e.g., email) and patterns for generic components (e.g., text inputs).
Use Consistent Patterns
Consistent error messages help users scan, understand, and act faster. It also eases our work because we don’t have to design each message from scratch.
For known common errors like 404 pages or no‑result searches, we can document the copy as part of a design pattern library.
When errors vary based on user input, we can provide patterns for specific cases, such as:
If a field is empty: “Please enter your [missing content].”
If input is too long: “[Input] must be [character limit] characters or fewer.”
The GOV.UK design system excels at offering both field‑specific messages (e.g., email address) and generic component patterns.
Summary
Error messages remain an overlooked part of user experience, yet they can be the deciding factor in gaining or losing user trust.
When we handle errors with care, clarity, and empathy, we not only help users move forward but also demonstrate that we value their time, goals, and experience.
Providing good support during problems lays the foundation for an overall high‑quality experience.
For more error‑message design practices, see the article “Guidelines for Error Messages in UI Design”.
KooFE Frontend Team
Follow the latest frontend updates
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.