I think the difference is that the two errors you described are very severe errors in which the machine may not know exactly what is wrong, and there isn't really any information to show to an end user other than a bunch of error logs or something. A cutesy error here is somewhat more appropriate, and can be kind of funny if you think about it like "welp, I really broke it this time lol."
However, the author described a case where an app messed up its auth flow. It knows exactly what went wrong, and it could easily present a much more helpful description. Who knows what a token is, or what headers are? Maybe it could even just try the request again, all while keeping the client informed. Instead, the app seems to have a simple try/except that handles the error by alerting the user with a cutesy message and dev-speak and nothing else, which is pretty annoying.
I also think any image is better than an ironic/snarky iphone alert.
> It knows exactly what went wrong, and it could easily present a much more helpful description.
Could it? The error in question sounds like a programing error. Either the client application did not provide a token the backend was expecting, or the backend lost it. What usefull error can be provided here other than “pray someone prioritises this bug and fixes it in the next release”? Or perhaps “think hard about what is so unusual about your usage or setup that you have fallen off the happy path and reached a state QA didn’t catch yet”
> Will it work if I try again? Do I have a ticket for my return journey? Should I call support? Or is this ticket completely hosed?
A good error message should try to answer these questions, because that is what the client is wondering. "Token header not found" doesn't even address the client as the audience; it's a message for a developer, written by a developer. Even if it has no solution, it should at the very least say "please contact us".
Yes, a good error message should tell you that. I’m not disputing that. I use this application regularly and it provides clear and usefull error messages when the network is down, or when you made a typo with your card details. It generally works. This, what we are seeing here is some off-nominal edge case. Have you seen code where a developer commented “// this should never happen”? That code is running there.
Should there be such a state? No, there shouldn’t be. The developers should work hard to make the applications always work, and when it can’t because of no fault of their own provide a clear explanation of what is wrong. (The network is down, the backend is overloaded, card declined, no tickets available, etc etc)
But still, bugs happen. Clearly that is what is going on here. Something violated the assumptions the developers made. What I’m saying is that when that happens it is very hard to answer any of those questions. “Will it work if I try again?” Maybe? Unless it won’t for a hundred and one possible reasons. “Do I have a ticket for my return journey?” Idk, does it look like you have a ticket? You tell me. “Should I call support?” Maybe? That sounds usefull, we want to know that something that shouldn’t happen happened. Unless offcourse we fumbled big and our phones are already on fire, in which case please don’t call support.
It is easy to say that an error message should provide information like that and a very good thing to aim for, but I’m disputing if it “can” in every unexpected situation.
However, the author described a case where an app messed up its auth flow. It knows exactly what went wrong, and it could easily present a much more helpful description. Who knows what a token is, or what headers are? Maybe it could even just try the request again, all while keeping the client informed. Instead, the app seems to have a simple try/except that handles the error by alerting the user with a cutesy message and dev-speak and nothing else, which is pretty annoying.
I also think any image is better than an ironic/snarky iphone alert.