As a user: The recent Sonos app update shows what happens when you don't even bother with a generic error message. That app is so buggy that many failures don't trigger any sort of error at all, and the user is just left wondering what, if anything happened. Many buttons don't do anything at all (no animation, success, failure, page load, anything). Others load for a few seconds and then go back to the beginning with no message indicating what happened. Other boolean toggles just slide back to their previous state after a few seconds with no explanation. Having an error would've at least let you know "oh, the app is broken" rather than "I did something wrong".

---------------

As a dev at another small company supporting users: We have a lot of different failure modes that we try to handle, ranging from the specific (your auth is wrong, you're rate limited, your request is invalid, your request is too big, whatever) to the somewhat vague "there's been an error, please submit a help ticket with error ID #blahblahblah" where #blahblahblah actually corresponds to some backend logging that we can then further troubleshoot with them individually.

Then there's the "Something went wrong" errors, which are fallbacks of last resort... that one last safeguard in a cascading series of try/catches where we know the operation didn't succeed, but not in any failure mode we predicted. Maybe a server or function blew up halfway through an operation, but not in a way where we could've caught a stack dump or logged a request error. Maybe it's a type of crash we've never seen before, maybe a bug in some third-party lib, maybe a file parser died on an edge case in a user-generated file... whatever. We don't have any logging on that and we can't do any useful debugging on it, usually.

But you know what? It's still helpful for two reasons:

1) It lets the user know something unexpected happens. Sometimes trying again actually works. But even if it doesn't, it let them know that there was an unexpected error (and it's almost never their fault). If you don't even tell them that, well, like the terrible Sonos app, either they assume they did something wrong, or they think it succeeded when it really didn't.

2) These errors are for us (or at least should be) very far and few in between. If we get one report a month about one, we know, ok, there's some corner case bug in some dark corner that we've yet to catch. We can't really do anything about that, but we'll keep an eye out.

If, however, we suddenly start getting tens or hundreds of reports of these a day, we know something is very, VERY wrong on our infrastructure somewhere, maybe caused by a recent deploy. One customer reporting an undiagnosable bug isn't actionable, but a handful at the same time definitely is, and more than that would probably be an all-hands-on-deck emergency.

That's at our scale of a small business. At Facebook/Google scale, you can only hope they have more robust logging and super engineers, and even if that error doesn't help you as a individual user, maybe the 20th million occurrence of it this week will lead some obscure bug being fixed in some 20-year-old part of their code a few months from now, even if they don't tell you about it. That's the hope, anyway. Probably a lot of them just get completely ignored...