![]()
Error handling is a critical design feature that directly protects a company’s core revenue stream by managing different business costs. For Slack, the priority is workplace retention. When a message fails to send, the business cost goes beyond just that one user’s annoyance; it is also lost productivity that could lead an entire company to churn from its B2B subscription. Slack’s recovery flow protects this subscription revenue by clearly queuing the failed message with a “Retry” button. This action protects the user’s work and maintains a perception of reliability, ensuring teams remain dependent on the tool.
In contrast, Uber’s error messages are vague and unhelpful. They do not help the user understand what the problem is and do not lead to immediate solutions, but does suggest that the user try again later. Perhaps this is because errors are often caused by problems outside of Uber’s control, like poor network connectivity.
Banking apps have the highest stakes, prioritizing trust maintenance. An error in transferring funds or deposits could be seen as a security threat that causes panic. The business cost is the catastrophic loss of trust that could cause a user to switch banks. The recovery flow, therefore, prioritizes security over convenience, intentionally “locking” an account after failed login attempts and using explicit, reassuring language. This protects the user’s assets, which is the bank’s core business.
