Have you ever gotten an S0A00 error code on your Comcast cable box? Turns out, it’s mostly harmless, and it usually fixes itself after an hour or, worst case, requires a call to Comcast customer support. But presented with only those six cryptic characters and some vague “you have encountered an error” message, how would a customer know that S0A00 does not signify the end of their television-watching world? Without clarity or context, they’re left to their own devices, knowledge and assumptions as to what might be causing the S0A00 error message to appear. Did I forget to pay my bill? Is my cable box too old and in need of upgrading? How much will that cost me?
As the uncertainty spreads, it’s clear that our user is nearing a state we, as software designers and developers, do not want them entering let alone thinking about. And that’s why error states deserve thoughtful design love. Simply displaying in plain English what has happened and how to fix it (or what to expect) can go a long way in assuaging fears and creating a better overall user experience.
As designers and developers, we spend the majority of our time thinking about our software in its ideal state. We perfect the idealized “happy paths” that our users will follow to complete their tasks and achieve their goals. But users will often (read: almost always) take wildly circuitous routes to their goals. Servers will not respond. Edge cases will creep towards the middle. Things will go wrong.
When things do go wrong, most software will display an error code to the user. These error codes are often created for QA engineers to quickly diagnose a problem. Unfortunately, we often forget that last critical step: translating those error codes into something users (who are usually not engineers) can understand.
This is the time when our messaging needs to be the clearest and most direct. Something has gone wrong. Our user is upset, maybe panicking. Good error messaging puts a user back in control when things go wrong. It aligns expectations and calms the user by giving them a sense of context around what happened. Good error messaging is informative and jargon-free. It is not engineer-speak. It empowers the user by either telling them how to fix the problem or what they can expect to happen next.
Building a digital product?
So don’t ignore error states. While they’re not exciting or fun, they are critical because things will go wrong. Thoughtful, well developed error states can make the difference between a good user experience and a great one.