I think we are talking across each other.
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.