Why error messages can fail (and how to fix them)
There are very few things that frustrate users faster than a bad error message.
Imagine that you’re trying to complete a task. Something goes wrong. A message appears.
Error 403.
Invalid input.
Something went wrong.
Now you’re stuck. The system knows there’s a problem, but it hasn’t told you exactly what it is and how to solve it.
That’s where effective UX writing makes all the difference.
The problem
Many error messages are written from the system’s perspective rather than the user’s.
Developers often know exactly what the error means, but users don’t.
Technical codes and vague explanations leave people guessing what happened and what to do next.
When users guess and don’t have all the facts, it can create frustration, abandoned tasks, increased support tickets, and may even reduce the trust the user has in your product.
The three questions every error message should answer
A useful error message should answer three questions:
1. What happened?
Users need to know the issue. Users cannot fix the issue if they don’t know what is wrong.
Instead of: “An error has occurred.”
Try: “We couldn’t connect to the server.”
In this example, the new message indicates a connection issue. It also doesn’t blame the user for the issue.
2. Why did it happen?
Users need to understand the issue. Provide context whenever possible.
Instead of: “Login failed.”
Try: “Sorry, your password doesn’t match our records.”
In this example, the new message shares why the login didn’t work: the password doesn’t match. This gives users a clear picture.
Get Arlene Smurthwaite’s stories in your inbox
Join Medium for free to get updates from this writer.
3. What should I do next?
This is the most important part.
Instead of: “Please try again later.”
Try: “Check your tool configuration, and try again.”
In this example, it informs users what to do. Users don’t just need information — they need direction.
What would you change?
Consider this message: “Something went wrong. Please try again later.” At first glance, it seems helpful.
But it raises more questions than it answers.
· What went wrong?
· Why did it happen?
· How long is “later”?
· Is there anything I can do now?
A stronger version might be: “Sorry, we couldn’t connect to the database. Check your connection and try again.”
The revised message is specific, actionable, and speaks in a human tone. Now, the user can check their connection and see if they can reconnect.
Don’t make users decode technical language
Error codes can be useful for the right audience. For support teams, for developers, for logs.
However, most users don’t know what each error code means.
If technical information must be included, place it in expandable details or support documentation rather than the primary message.
For example, let’s say we have an error message stating “Error 403: Forbidden.” This message has a code, but doesn’t tell us much more. Why is it forbidden access? Do I need the right role permissions to access it? Is there a server issue that is preventing the connection? Messages like these can frustrate or scare a user, which in turn can erode the trust they have in your product.
Instead, an error message that reads “You don’t have access. Ask your administrator for permission.” explains the issue and what a user needs to do to fix it. You could also add the error code, if required, after the message. “You don’t have access. Ask your administrator for permission (AB403).”
Write with empathy
One overlooked aspect of error messages is the emotional impact. When users encounter errors, they’re already experiencing friction. Avoid language that sounds accusatory or cold.
Instead of: “You entered an invalid value.”
Try: “Enter a valid email address.”
The second version focuses on solving the problem rather than assigning blame.
Better error messages create better products
Error messages aren’t just system alerts. They’re moments of communication.
Every error is an opportunity to build trust, reduce frustration, and guide users toward success. Also, think of it as an opportunity to help your brand voice. By creating clear, confident error messaging, users can feel confident in completing their tasks and in your product.
The next time you’re reviewing an interface, don’t skip over the error states.
They’re often where the best UX writing matters most.








