Why in-app error messages should be understandable and actionable for the user
How to Turn an Error Message from a Source of Confusion into a Solution
When a user encounters a problem while using an app, what they need most isn't technical programming details, but rather an understanding of what went wrong and what actions they can take to complete their task.
A well-crafted error message begins by explaining the issue in simple language and then naturally transitions to a possible solution; this transforms the message into a helpful guide rather than just a generic on-screen warning.
For instance, if an image upload fails, it is far better for the user to know that the image size or file format is incompatible—or that the internet connection needs checking—than to simply see a message stating the operation could not be completed.
This type of information empowers the user to fix the problem directly, rather than repeatedly attempting the same action without making any changes.
Furthermore, an actionable message reduces the perception that the app is overly complex, as the user finds the information needed for the next step right on the same screen, without having to navigate to external help pages.
The alert can include a button to retry the operation or direct the user to where they can edit their data, thereby making the process of resolving the issue shorter and more straightforward.
Why "Something Went Wrong" Isn't Enough
The phrase "Something went wrong" might seem simple and quick, but in many cases, it fails to provide the user with information that would help them understand the cause or determine the appropriate next step.
A user encountering this message might attempt various solutions on their own—such as closing the app, restarting their phone, or repeatedly pressing a button—even though the issue could have been resolved with a simple step that the message could have clearly outlined.
Consequently, a message that is too generic can increase frustration rather than aid in resolving the issue, as it places the burden of figuring out what happened entirely on the user, without any guidance.
If the problem stems from missing data, it is better to specify exactly what is required rather than simply reporting an unknown error; if it relates to connectivity, the message should clarify that the connection needs to be checked before retrying.
In the case of a server-side issue, it is helpful to explain that the service is temporarily unavailable and suggest trying again later, rather than prompting the user to futilely alter their device settings.
Differentiating between these scenarios makes error messages far more useful, as each situation receives an explanation tailored to its specific nature, rather than relying on a one-size-fits-all phrase for every problem.
Designing error messages to provide a clear next step for the user
The appearance of an error message does not mark the end of the user experience; instead, it can serve as a transition to a new step if the message is designed to guide the user on what to do next.
A common mistake is displaying a message without a clear call to action, leaving the user to close the alert and then figure out on their own how to resume the task they were performing.
Superior design incorporates the next step directly into the message—such as providing a button to retry, access specific settings, or edit the data that caused the issue.
When the action is clear and direct, the user can resolve the problem immediately rather than having to leave and return to the screen multiple times.
In registration forms, for example, the error should appear next to the specific field requiring correction so the user can identify the issue without having to search through all the data they entered.
For payment processes, the message can indicate that the transaction failed while offering options to retry or select a different payment method if the issue stems from the current one.
If a service is temporarily unavailable, it is better to clearly inform the user that they can try again later, rather than presenting a button that leads to no useful outcome.
These details ensure the message is directly relevant to the context in which it appeared, preventing the user from feeling that the alert is disconnected from the task they are trying to complete.
Clear error messages reduce the frequency of futile retry attempts.
When users do not understand why an operation failed, they naturally tend to repeat the same action, hoping it will work on the next try—a behavior that can cause further issues in certain types of applications.
A user might click the "Submit" button repeatedly because they saw no clear confirmation that the request was being processed, or they might re-enter data without knowing which specific part caused the error.
A well-designed error message can curb these behaviors by explaining what went wrong and indicating the correct course of action, rather than leaving the user to guess.
If the issue lies with the password, it is better to state that the credentials are incorrect and offer a password recovery option, rather than simply displaying a generic "Login failed" message.
Similarly, if a user attempts to upload an unsupported file, specifying the accepted formats or size limits allows them to make the necessary adjustments before trying again.
These small details save users from multiple failed attempts, making the interaction with the application faster and less frustrating.
They also reduce system strain by preventing unnecessary repeated operations—particularly those involving server requests or external services—that might otherwise occur due to a lack of clear guidance.




