BACK
Oct 9, 2025
Making Errors Friendly
Errors happen. Always.
It doesn’t matter how good your code is or how polished your design feels - users will run into errors.
What matters is how those errors feel.
A friendly error can turn a bad moment into trust. A cold or confusing error does the opposite.
The unhelpful error
We’ve all seen this:
This is the worst kind. It tells you nothing.
What went wrong? What should I do? Is it my fault?
Users feel stuck, and stuck users often leave.
The better error
Errors should explain, guide, and reassure.
This one does a few things right:
Says what failed.
Suggests why.
Offers a way forward.
The user feels seen and supported.
Error design in forms
Forms are where errors happen most. Bad form errors make users angry. Good ones keep them moving.
Bad example
What’s invalid? The user has no clue.
Good example
Now the user knows what to fix. Clear, specific, and calm.
Inline vs global errors
Inline errors point directly to the problem.
Global errors work better for things like API failures.
Use both styles where they make sense.
Errors in APIs
Errors aren’t just for users. Developers need friendly errors too.
A bad API error looks like this:
It doesn’t say anything useful.
A good API error is clear and structured:
Developers now know exactly what to fix.
404 pages
A 404 page is an error too. But it doesn’t have to feel like failure.
Bad
Good
Even better: add a search bar, some popular links, or a playful illustration.
It softens the frustration.
Errors with personality
Errors can even be fun, if the product allows it.
Tone matters. Playful errors work for casual apps. For banking or healthcare, keep it professional and calm.
Empty + error = overlap
Sometimes what looks like an empty state is actually an error.
Example: a list that won’t load. Is it empty, or broken?
Make the difference clear:
Empty: “You don’t have any messages yet.”
Error: “We couldn’t load your messages. Check your connection.”
Checklist for friendly errors
Be clear about what went wrong.
Suggest what to do next.
Offer a retry if possible.
Match the tone to the product.
Put errors where users need them (inline, global, or both).
For APIs: give helpful, structured error messages.
Never blame the user.
Final thought
Errors are not the end of the world. They are part of the journey.
A good error message keeps users moving forward instead of shutting them down.
Make errors friendly, and your product will feel more human - even
More