A Bus Ride, a Payment Failure, and the UX Fails That Expose Gaps in Modern App Development
Share this article
Norway is digital to a fault. Yet attempting to buy a bus ticket can reveal a cascade of user experience (UX) failures that leave even tech-savvy commuters stranded. This is the story of one developer's journey through payment app purgatory—a cautionary tale about what happens when systems fail to anticipate reality.
The Commute That Went South
Peter, a seasoned developer and OpenBSD advocate, relies on the Skyss bus app for his occasional trips to his employer's office. On a typical morning, he selects a single ticket, chooses Vipps as his payment method, and clears authentication steps—only to lock his phone and step out the door. Moments later, an alert buzzes: payment failed with an "Unknown error."
Suspecting a network transition from WiFi to 5G disrupted the transaction, Peter retries. The same error persists. With the bus approaching, he boards unpaid—technically accruing a debt of NOK 41.32 and risking a NOK 950 fine if inspectors catch him. The day proceeds uneventfully: meetings, a UX design session, and socializing over pizza. But the return trip brings deja vu. The Skyss app again displays "Unknown error," trapping Peter in a familiar limbo. "No inspectors turned up," he notes, "but my debt to Skyss had roughly doubled."
The Vipps Rabbit Hole
By now, Peter’s suspicion shifts to the Vipps app—Norway’s near-ubiquitous payment platform. Opening it, he’s met with an unexpected prompt: a question about whether he’s a "politically exposed person," with options to answer "Yes," "Previously," or "No." No bypass exists to proceed with payments. After answering, the app presents a single button: "Update."
Tapping it redirects to the Play Store, where "Open" only loops back to the same update screen—a circular progression that forces Peter to uninstall and reinstall Vipps. The process triggers a full re-setup, raising privacy concerns as the app auto-links to his bank account via his national ID number. "Fortunately (or perhaps worryingly from a privacy perspective), the app managed to connect itself to my main bank account," Peter observes.
Anatomy of the UX Fails
Peter dissects the failures with developer precision:
UX Fail #1: Skyss App’s Silent Failure
The Skyss app developers trusted Vipps to either never fail or fail visibly. When Vipps returned an error, Skyss displayed only "Unknown error," offering no context or next steps. This failure assumes downstream systems are infallible—a dangerous assumption in distributed architectures. As Peter notes, they "deemed [displaying Vipps error information] not necessary," leaving users blind to root causes.
UX Fail #2: Vipps App’s Third-Party Blind Spot
Vipps’s design assumes users interact with it directly, not via third-party integrations. Whether Skyss misconfigured its API call or Vipps’s backend mishandled the request, the payment flow collapsed without graceful degradation. This reveals a common pitfall: payment services treating partner apps as afterthoughts rather than critical users of their APIs.
UX Fail #3: The Update Loop
Vipps’s update button fails on common Android devices—specifically, "recent-ish" models from major manufacturers. The Play Store integration creates an inescapable loop, forcing drastic measures like reinstalls. "Whatever they did test apparently did not involve any recent-ish Android phone from those too-big-to-fail Koreans," Peter quips, underscoring how real-world device diversity is often overlooked in QA.
Bonus Fail: Adobe’s AI Overreach
The saga extends beyond mobile apps. While proofing a 250-page PDF for his book The Book of PF, 4th Edition, Adobe’s Acrobat AI Assistant interrupts with: "This looks like a long document. Would you like to see a summary instead?" For Peter—a creator, not a consumer—the prompt is antithetical to his task. "UX FAIL because AI," he concludes, highlighting how generative features are often deployed without understanding nuanced user workflows.
The Human Cost
While Peter, an "Internet greybeard," navigates the technical maze, the implications for less tech-fluent users are dire. "I can only imagine the utter puzzlement any less (Internet) digital native senior citizen... would have experienced," he writes. These failures aren’t just inconveniences; they risk fines, erode trust, and exclude vulnerable users.
Lessons for the Industry
Peter’s odyssey offers three critical takeaways:
- Error Handling Is User Experience: Apps must propagate meaningful errors, not generic placeholders. Silent failures frustrate users and obscure systemic issues.
- Third-Party Integration Demands Empathy: Payment services must design for embedded use cases, not just direct interactions. API contracts need robust error-handling and fallbacks.
- AI Features Require Contextual Awareness: AI assistants shouldn’t override user intent. Features like summarization must respect workflows—especially in professional tools.
In a world where digital services permeate daily life, these UX fails are more than anecdotes; they’re systemic cracks. As Peter’s bus ride proves, the cost of poor design isn’t just technical debt—it’s real-world friction that alienates users and undermines trust in the systems we rely on.
"UX fail #1 was in the Skyss app, where the developers had apparently trusted the Vipps app to either never fail or at least fail in some obvious way, so displaying any information from Vipps was deemed not necessary."
"UX fail #2 would likely go to the developers of the Vipps app, who seem to have assumed that users will only ever interact with their system directly, never through a third party app that uses Vipps as the payment back end."
"Finally, UX fail #3 goes clearly to the Vipps team, who appear to have failed to test the sequence of events that will be triggered by their Update button in the app."
— Peter N. M. Hansteen, A Bus Ride and the (At Least) 3x UX FAILs (2025)
Source: Peter N. M. Hansteen, "A Bus Ride and the (At Least) 3x UX FAILs," BSDly (November 28, 2025). Available at: https://bsdly.blogspot.com/2025/11/a-bus-ride-and-at-least-3x-ux-fails.html