When Slack fails to send a message (I forced it by toggling airplane mode), it shows a red “message not sent” label with a tap target to retry. Business cost: if errors silently drop messages, teams lose trust and move work elsewhere, threatening Slack’s core seat-based revenue and expansion. The visible inline error and easy retry keep conversations in the product instead of pushing people to email or text.
In Uber, I broke the flow by cancelling mid-request and by using an expired card. Each time, the app foregrounded one clear primary action: update payment or request another ride. Business cost: every failed ride is immediate lost commission plus a hit to rider frequency. Uber’s focused recovery flows (single CTA, preserved destination, stored past methods) reduce friction to complete “this ride now,” protecting per-trip revenue and long-term habit.
Banking apps are the most trust-sensitive. When I interrupted a transfer, one app showed a precise status (“Transfer cancelled. Your balance is unchanged”) plus a link to view activity. Business cost: vague “something went wrong” errors here risk customers pulling deposits or switching banks, jeopardizing interest, interchange, and cross-sell. Clear, auditable error messages and activity logs act as reliability theater and real proof, stabilizing trust.
Across all three, strong error handling isn’t just UX polish; it’s revenue defense: keep work in the workspace, the ride on the road, and money in the bank.
