345 comments

[ 3.1 ms ] story [ 334 ms ] thread
I couldn’t believe the first time I saw the sad smiley blue screen. It seemed like such a ridiculous thing for Microsoft to have done.

Then I remembered fiddling on Macs as a kid, if you screwed up you’d see a bomb. If you did something really wrong you’d get the mac icon with Xs for eyes.

The point being: cutesy errors are about as old as personal computing, but they do seem to becoming more prevalent.

Came here to say the same. The problem is they seem to be hiding information (for some reason):

Instead of being able to search "errornumber appname", you're stuck with a pastel picture of some cartoon character shrugging and text of "whoops! something happened. why don't you try restarting?"

Instead of being able to search "errornumber appname", you're stuck with a pastel picture of some cartoon character shrugging and text of "whoops! something happened. why don't you try restarting?"

Are you referring to Teams, by any chance?

I don't mind them being artsy, but if that's a replacement for the actual detailed error message, it both makes the user and the people trying to help helpless.

Imagine helping someone over the phone or in person; e.g. if you can see "error 10060", you know instantly that it's a network connection problem. If it's an access violation ("illegal operation" was unfortunate but still far more informative terminology) or a c0000005, the application probably messed itself up. You can ask people to read you error codes or search them yourself (being sure to quote them --- the horrible vagueness of search engines is another rant I won't get into here, although it also adds to the problem...). If all the application says is "something wrong", no one can help. All but the extremely perceptive could as a result be easily mislead into reinstalling the application, reinstalling the OS, and all manner of other stupidly destructive and ultimately futile actions, only to find out that the problem was ultimately due to something else entirely.

> Came here to say the same. The problem is they seem to be hiding information (for some reason):

Back when I worked at a computer shop I've had customers come to the shop with a hand-written report of the Windows XP BSOD message; like, all of this.[1] They were always very nice people by the way.

Also, all the text is boilerplate and 100% irrelevant to the actual error (UNMOUNTABLE_BOOT_VOLUME). It's not going to be fixed by a Windows update (which you can't install since you can't boot the thing) or disabling "caching" BIOS options. Not showing any text instead of that is probably better. It wouldn't be too hard to make a error message → useful description map for common problems like this, but good error messages/help was never Windows' strong point...

[1]: https://neosmart.net/wiki/wp-content/uploads/sites/5/2013/08...

I agree the old BSOD's were too verbose. I'd like a return to "error [number]: [short description]".
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”

I think so, yes. From the article:

> 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".

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.

Like the others have mentioned, the fact that it's cutesy is orthogonal to the fact that they used to actually be informative:

https://static.wikia.nocookie.net/ipod/images/3/39/Sad_mac.j...

(Link works without referer only.)

For anybody else wondering, this means you need to visit that URL by hand, e.g., by copying it to the clipboard and pasting it into the location text widget then pressing Return or whatever. Don't click it.

EDIT: wait, wtf, I did the above once - and now it works when I click it. Go figure

and now it works when I click it. Go figure

Caching.

> I couldn’t believe the first time I saw the sad smiley blue screen. It seemed like such a ridiculous thing for Microsoft to have done.

What's much worse is that it shows the screen for all of three seconds before automatically rebooting (at least for some errors), so you need to go through at least two or three boot cycles just so you can read the goddamn fucking error message. I used Windows for the first time in over a decade last week and had some issue with the disk, and it just kept rebooting and I had to quickly snap a picture so I could read the message because by the time I could orient myself on the screen it was too late. I cannot comprehend how anyone thought this would be a good idea. I cannot even comprehend how someone could comprehend it. :( indeed.

Yeah. You can actually change the behavior, so that the default is to just stay on the blue screen until the user manually reboots. Why someone ever thought automatic reboot was a good idea, or how they haven't bothered to change the default for 30 fucking years, is beyond me.
Why someone ever thought automatic reboot was a good idea

For a server, which might only be accessible remotely, it is.

For an interactive computer, I agree that it isn't.

I believe this was a heritage from the NT series --- the 9x BSoDs just sat there and waited for you to reboot (except when things got so bad that it triple-faulted...)

I think they’re probably preventing luddites from being stuck on that screen until they gather up the courage to press the reset button.

For 99% of the people the error message is meaningless and the only thing they can do is restart, so it makes sense to do that automatically.

I don't recall Windows XP doing it back in the day. Or if it did, it didn't for boot errors like in Windows 10. I'm not sure because it's been a long time, but as I mentioned in my other comment, I had people come in with hand-written copies of all of the BSOD message, and you need some time for that (and fairly sure those folks didn't change some setting).

Automatic reboot isn't so bad, but just change it to a minute, or 30 seconds, or "press a key to abort reboot". An intern can do this. Hell, I'd send a patch, let me just find the Windows repo on GitHub...

Rest assured that not only XP, even 2000 did the same, and of course it did BSOD when booting, the most common being 0x0000007b "Inaccessible boot device".

But automatic reboot is a setting in the Registry, the issue is just with the default being "reboot" (I believe this was changed in XP, 2K just stayed on the BSOD by default, if I recall correctly).

I thought the default was to reboot after dumping memory to disk as a dumpfile, which tended to give you ample time with slow hard drives. Somehow my system got itself into a state for a while where it had a registry key set to just not make dump files, and that key was not fixed even when using the normal control panel based settings panel that is meant to let you change those settings, OR the dedicated microsoft tool built to give administrators more control over BSODs.

The correct way to troubleshoot a BSOD isn't on the BSOD screen anyway. You open up the dumpfile in windbg and click "analyze" so it can spit out some good details for you.

I felt the same way the first time I saw the new BSoD. It did at least have an error code displayed. But I couldn't agree with the article more, after a bug just ruined my day the last thing I want to see is an insincere cartoon trivializing my problem.

Last night and this morning I was locked out of my email because Duo wouldn't text me a 2FA code. There were no other options shown, just "we sent you a new code" and a phone number for the help desk. It was frustrating and I was upset, but at least they didn't show a sad cat with a bandaged paw. At least I was able to talk to a human, because my problem was important to me.

It's not just that they're more prevalent, but as computers become increasingly necessary it's more and more likely that bugs are causing damage. We should be more conscious of that fact.

Honestly, the new BSOD has everything I need - the stop code that happened and the module name so that I can start thinking about the problem while it gathers the dump. Not really looking for a stack trace or register info until it restarts and I can load the debugger.
One I recall from the early Mac era was the Kermit file transfer tool. [1] You'd run it on two computers. On one you'd tell it to SEND some file. Then on the other you'd type RECEIVE. A colleague of mine got absolutely fucking livid when he instead typed RECIEVE and it replied "I before E except after C".

He did have a point; the programmer obviously knew what was intended, but instead of just leaving it to a generic syntax error he went out of the way to have the computer be snotty. But the rage still seemed wildly disproportionate to me.

Years later, John Scalzi had a good way of putting it: "The failure mode of clever is asshole." [2]

[1] https://en.wikipedia.org/wiki/Kermit_(protocol) (I'm pretty sure it was this. It has been a while!)

[2] https://whatever.scalzi.com/2010/06/16/the-failure-state-of-...

I think this is hilarious. A bit like sl instead of ls.
Oh, I did too. But then, I wasn't the one trying to get something done with the tool.
It’s so easy to be offended or outraged. Want a challenge? Practice not being offended or outraged… at exactly those things that presently offend you.
Want an even bigger challenge? Help your unenlightened users not be offended. By not providing stupid, unhelpful UI.
Sure, we could all be more resilient. But sometimes offense is useful and valid! If I am urgently trying to get something done and somebody else picks that time to clown around and interfere with me, I don't think it's unreasonable to get mad.

I like joking around a lot, but reading the room is an important skill. To me it's important that the person I'm joking with actually enjoy it. A failed joke, one that annoys them is a mistake. People who persists in making jokes that the targets aren't laughing at are not really making jokes anymore; they're just being dicks. Which can also be a valid activity, but nobody should confuse it with joking around.

I hated that bomb. It tended to appear at 11:00 PM when trying to print from Adobe PageMaker (pre-Indesign) at the end of a long sprint to get master prints to a publisher. That bomb meant I wasnt't going home for a few hours because MacOS had chosen that as the moment where some extension, previously playing nicely, was in conflict with another. It meant I'd get to do a binary search through deactivating /reactivating extensions to find the offender.

Keep in mind that each iteration required a reboot, and this was at a point in computing history where booting a computer filled with specialized publishing & editing programs each with their own hooks into the OS was a task that could be measured by the length of an extremely generous bathroom break.

And all I had to go on for error messages was a bomb and the number "-10 error". I hated that bomb. I don't think I fully recovered from the trauma & stress caused by unstable OS's until well into OS X's life and a few years of Windows 7 on the MS side of things.

And yes, this is my digital equivalent of the previous generation's "I had to walk 10 miles to school in the snow up hill, both ways"

> but they do seem to becoming more prevalent.

I think prevalence is important here. Everyone seems to be injecting cuteness into everything today. Blog posts or README files overflowing with emojiis and meme images. I'd really like to banish the rocket emoji. The metaphor is exhausted. The corporation-as-a-friend is everywhere.

Interestingly, some errors started out life as deadly serious and only became humorous later. "lp0 on fire". Printers used to really catch fire. Unix really was suggesting that maybe you want to look into that. The message still exists in Linux (as far as I know), but today seems rather funny to some people. Or can read like PC LOAD LETTER[1] to others.

[1] https://www.youtube.com/watch?v=5QQdNbvSGok

Is this the rocket emoji you are talking about?

8===D

I feel like I don't see this emoji very often in READMEs

(comment deleted)
"Made with <HEART> by Faceless Corpo"
Nearly all of the Windows UX designers are Mac-users, which explains the similarity.
oopsie woopsie! https://twitter.com/cherrikissu/status/972524442600558594

edit: I always thought this tweet was hilarious. I'm definitely not a furry though, looking through OP's tweets now that I've linked one of theirs...

If you feel the need to tell everyone about how non-furry you are just because you linked someone's tweet, you're probably not as secure in your non-furriness as you want to claim.
I think the intent of the edit is to warn anyone who clicks the link that they're one more click away from furry porn, possibly on their work computer.
Then they could added a warning that commented on the nsfw aspect and not on their own non-furriness.
You'd accomplish that by appending "(NSFW)". Anything more complicated than that signals insecurity.
Hmm. When the thread knows literally one fact about you, and it's that you had a link to a furry art twitter account at the ready, you can be forgiven for doing a little brand management.
Are there studies that link announcement of not being X, with actually being X? I always thought that line of reasoning is ridiculous. It also uses X as being a 'gotcha', which seems similar to using X as an insult. I mean you don't 'get people' with things they are fine with admitting. Maybe not an insult exactly but it definitely feels like an attack.

I'm sure there are people who, being ashamed of being something, do go out of their way to say that they aren't. However I don't think seeing someone saying it once mean they "probably" are that thing. You can be annoyed/embarrassed at the thought of being seen as something you aren't.

I don't know the type of people who follow NSFW furry artists on twitter, but I imagine a lot of them are furries themselves. If the OP doesn't want to be associated with them then I think it's reasonable to state he isn't one.

> "If the OP doesn't want to be associated with them then I think it's reasonable to state he isn't one."

Imagine linking a tweet about a software error message and then making a followup comment "that account posts a lot of baking content. I'm not a baker btw.". Who would think you are a baker just because you linked a tweet posted by a baker? And why would you care if anyone accidentally thinks you're a baker? You wouldn't because there's nothing embarassing for you if people think you're a baker.

So the disclaimer "I'm not a furry" implicitly contains the message "being considered a furry would be embarassing because being a furry is bad". You don't need to disclaim things which society widely accepts as bad ("that account posts a lot of murder content, I'm not a murderer btw"). You may disclaim things which feel risky if misunderstood ("they Tweet medical advice, I'm not a doctor") but mostly the disclaimers are for tribal declarations of things you would feel embarassed to be associated with ("I'm not a flat-earther like they are"). People who think those things are fine push back "Why are you using X as something embarassing to distance yourself from? You think X is bad, do you? Maybe you secretly are X and hiding it and that's why it's at the top of your mind".

It's those people using X as an insult, in the sense that the original person's disclaimer made it an insult and they are mirroring it back.

If they didn't go out of their way to disclaim it probably nobody else would have commented on it; "I checked out the rest of the account you linked and you read a furry themed Twitter account?" "no, I saw it on a programming meme Reddit" and it would be a non-issue.

If someone links to an account which is prolifically an X and tweets about X, I would assume that you might be an X. Which is to say I wouldn't treat it as a fact. It might trigger the question, "Are you an X?", simply out of interest, whereas previously I wouldn't have any reason to ask that. That's just me, I'm sure there's people who would just assume that they are an X.

>You don't need to disclaim things which society widely accepts as bad Whether you think people need to or not is irrelevant. We know that people do it, so people obviously feel they need to do so. I've seen people play devils advocate, or joke themselves as an X, and be mistaken for one before. so perhaps you do need to make a disclaimer in order to fully avoid confusion.

>"Why are you using X as something embarassing to distance yourself from? You think X is bad, do you? Maybe you secretly are X and hiding it and that's why it's at the top of your mind". Or maybe it's on the top of their mind because they unwittingly linked an account associated with X. The whole "if you don't like X you're actually X" is bizarre.

>It's those people using X as an insult, in the sense that the original person's disclaimer made it an insult and they are mirroring it back. Sure, that might be true, but it's still true the other side is using it as an insult. It's just odd since they're insulting OP as an X, whilst acting as if they're in the position of defending Xism...

>If they didn't go out of their way to disclaim it probably nobody else would have commented on it; "I checked out the rest of the account you linked and you read a furry themed Twitter account?" "no, I saw it on a programming meme Reddit" and it would be a non-issue. It's ridiculous for you to realise it's possible for people to make this assumption and also complain that someone made a disclaimer to avoid the extra discussion you mentioned. Perhaps these types of disclaimers might not matter much if you anonymously posting on this site, we don't know if OP is or not though.

Yep. Found out a few months ago that Mozilla’s bug tracker still thinks it’s appropriate to report “zero (matching) bugs found” as “Zarro Boogs Found”:

https://bugzilla.mozilla.org/show_bug.cgi?id=1374266

With a comical name like Mozilla, I think they have license to use comical error messages.
That doesn’t follow at all. They still have an international community that needs technical information and shouldn’t be distracted or confused by oh-so-clever jokes when trying to solve errors and bugs.

Firefox is intended as a daily utility for serious stuff, regardless of the name of the organization that makes it.

The organization is ultimately a collection of developers who have devoted (In this case) 20+ years of their career. I can understand the utilitarian view, but I can also see how they want to keep some humor or personality alive in their product. It's ultimately the decision of the org. Open source stuff is hard enough, imagine seeing tons of demands daily on something you really care about and then seeing something like this that doesn't, ultimately, even matter. I can understand a tiny bit of hostility.

I will add, don't take free software for granted, it doesn't owe you anything. I think the reverse is true.

There are plenty of ways they can have humor that don’t compromise technical docs.

You want to know how to ease the load of maintaining open source? Make onboarding easier. That means good, clear docs that aren’t cluttered with cryptic inside jokes.

Seriously, the way they work, you’d almost think they don’t want people to get involved. (In Mozilla’s case, probably because they blew their budget on the latest resume builder.)

It would be one thing if I were asking for a special feature of the product. Here, I’m asking for something that saves your support staff from being pestered by people that couldn’t understand the cryptic docs. Why wouldn’t you want that? [1] Why wouldn’t you be thanking anyone who suggests ways to save you time?

Sometimes I wonder if noticing this kind of stuff is a superpower, because it’s in really short supply.

[1] Maybe because you moonlight as an Optimism maintainer: https://news.ycombinator.com/item?id=30294065

As the bug notes, at this point in history it's unlikely this will be changed because it's been this way so long that tooling that works by screen-scraping a bugzilla output would break if "zarro" went away.

https://github.com/search?p=3&q=zarro+boogs&type=Code

At this point it's probably insufficiently confusing to justify the change. The most valuable piece of advice I ever got regarding error messages was "Here's what users do with an error message they don't understand: they Google it." As long as the key words are unambiguous in meaning it can actually be more harmful than beneficial to change a message like that (when people are trying to figure out why their bugzilla installs are showing zero bugs, will they lose all the accreted historical knowledge on StackOverflow for fixing "zarro boogs" issues if Mozilla changes the message?).

Did you know that there are people born every day that haven't been indoctrinated into Mozilla's oh-so-clever inside jokes, and they might start using the software one day[1] -- or at least, that's what Mozilla claims to wait, their organization practices notwithstanding.

If it's really important that the parser pick up the string "Zarro Boogs Found", then you can leave it in invisible text, and then leave the rest of the world out of your counterproductive in-joke.

[1] But at this rate, that's becoming less likely.

> Did you know that there are people born every day that haven't been indoctrinated into Mozilla's oh-so-clever inside jokes

Probably yes. And when they see that error and have more questions about it, many will Google "Zarro Boogs" and find StackOverflow links and various other sources.

If the text is changed or made invisible, that search pathway becomes obscured. As inconvenient as it is for making changes to published UI, unique and identifiable strings serve as a sort of "soft URL" in this era of ubiquitous search engines.

>Probably yes. And when they see that error and have more questions about it, many will Google "Zarro Boogs" and find StackOverflow links and various other sources.

The point of a help resource is that you avoid, where at all possible, making the user need other help resources.

>If the text is changed or made invisible, that search pathway becomes obscured.

That's not how text search works.

>As inconvenient as it is for making changes to published UI, unique and identifiable strings serve as a sort of "soft URL" in this era of ubiquitous search engines.

So do you think maybe there's a lesson in here about building a culture around being opaque to outsiders? Or do you take it as an indicator to be more opaque, lest we alienate those who like scaring off the users that the project exists to help?

> That's not how text search works.

Sorry, I don't understand. If the user can't see "zarro boogs" on the page, why would they Google "zarro boogs?" And if they don't, how are they going to find the legacy of comments on StackOverflow, for example, that would tell them that message means no bugs were found but can be caused by a misconfigured backing store?

> So do you think maybe there's a lesson in here about building a culture around being opaque to outsiders?

In an era where global text search utilities can clear up any confusion within 5 seconds, I don't think that error message teaches us a lesson one way or the other on the question of opacity. It's not a choice I would make for my own project to maximize adoption, but I've never gotten the sense it hurts bugzilla's adoption (the biggest competition I've seen for bugzilla these days are options like Jira that don't require self-hosting the installation, which is a far more significant feature axis than whether the error message is funny).

My favorite bugzilla text:

  zarro boogs found
Hmm, I don't think the problem is cuteness or lack thereof, it's the lack of either a suggested fix ("sign back in" or "try restarting" etc.) or even some kind of cryptic id you could report to Customer Service - "why am I getting a #4747 error trying to complete my transaction!?"
The cryptic IDs can be rather nice - if I throw "ERROR YCOMB-143" at least it's pretty likely you can google an answer... but if you're able to deliver such a distinct error state to the user can't you save a step and include a message about how to resolve the error state (i.e. "ERROR YCOMB-143 Your account is too young to down vote comments")
Cryptic IDs are indispensable for support, because you can't expect the support staff (or the dev who's ultimately going to be handling the bug) to know all the languages the app was localized into. Without IDs, it can be real fun trying to figure out what's wrong from, say, a screenshot of the Chinese version of the app.
If the system you are having trouble with is important to your work or otherwise essential, being a bit antsy about the matter is perfectly understandable IMO.
“Oopsies, I can’t find what you’re looking for” with a 404 in the response header versus

“404 not found” with a 404 in the response header seems pretty reasonable to me.

If they deviate from standards, sure.

I like the cutesy errors. It makes it marginally less likely that I will put my fist through my computer monitor. Those things get expensive after a while.
Interesting how people differ so much. These make me far more likely to have to purchase a new monitor or mouse..
> Interesting how people differ so much.

Life would be rather dull otherwise.

I miss CRT monitors for exactly this reason, they at least offer some resistance...
I’ve seen far worse errors. In practice, I think writing good error messages is very difficult for system (or unexpected) errors because you often don’t know the context of what the program was doing before the error happened. Stack traces help approximate this context, but they are imperfect because they are a point in time. The solution to this problem is really good logging, but that is almost always hidden away from users.

I’m fine with whimsy, but don’t treat your users like babies by hiding away all diagnostic information like logs.

OP makes a reasonable argument about why error messages should be constructed the way they prefer, but is it actually backed up by usability testing? Maybe the cutesy errors really do have a subconscious positive effect which is being overlooked here?
Agreed. And while I’m sure we have all been let down by apps/tech at one point or another, I think the user in this case discounts the tremendous effort put into developing apps, and to me a somewhat “cutesy” error message is enough to remind me that a human created the very opportunity I feel let down by.
Were cutesy errors backed up by usability testing?
If not then that just means that both this counterargument against cutesy errors as well as the original rationale to have them in the first place are both equally weak. That's not a point in favour of this argument.
Points in favor of this argument can be found in other comments.
OK, sure, but what does that have to do with what I'm saying about usability testing being important to validate your hypotheses?
I started a reply thinking this is probably absurd to do, but I realise it's probably possible. A/B test error messages, outcome are support tickets, app reviews. That's said I'm not sure if anyone would bother to setup tests for error messages, there probably more important things to do like fix the actual cause
I think this article is great but it buries the lede. The cutesy errors are indeed bad but more important is being informative about what actually went wrong and how to resolve it. A while ago I introduced a new error class hierarchy at <JOB> which introduced three distinct families of errors - one that was considered a user error (that would be thrown in response to some action that we can predict happening but not totally prevent), one that is considered to have a user friendly message but be generally unexpected, and anything else. If you try and insert something invalid into the DB you'll get a user unfriendly message - if, within the calling function, you know why your call to the DB would fail with a key collision (for instance) you can create a new chained exception off the original and rethrow with a human readable message - when it hits the top level of execution (assuming nothing catches it) then the error printing logic will iterate through the full chain and print everything human readable and dump the full traces of any errors not marked as user side.

This lets us quickly triage new errors (since known user errors are kept out of the main error log) and presents an easy way to convert logged errors to unlogged ones when we've determined the source of the issue (assuming it's an exception we're comfortable with - a lot of our "user" errors are server-side validation that should be prevented by client-side code).

It also forces any errors that we haven't specifically marked as human-readable to render as "Internal Server Error" which we hate along with supplying an easy route to provide a more meaningful error message.

I never, in my life, want to read an error message that starts with "GuzzleHttp encountered a malformed response from aws. ..." nor do I ever want to see "[SQL1002] The newly inserted row would violate constraint widgets_name_key" - write good errors.

This was a twitter thread, so not too surprising, but the concluding tweet went there too: "Good error messages explain what’s gone wrong, and give clear instructions for what to do next – and being cutesy rarely helps." and there's a link to https://alexwlchan.net/2020/10/the-importance-of-good-error-... as the dedicated writeup (also from tweets) for that specific point.
I disagree with nearly every response in this thread (not yours). The 'cutesy' error messages are step 1 to providing a better user experience.

'This is awkward! Something went wrong and it's probably our fault :-('

is much better for users than

'Unexpected error occurred in logTicketResponse'

And no, it isn't sufficient, but it is better. Providing useful error messages is really hard (and it sounds like your application does a good job of it), and we as software developers are not very good at it.

For everyone who complains about the cutesy error messages, how much time are you spending in your own code to provide useful error messages that explain the problem and suggest resolutions?

...I'll actually write messages that explain what the user may have done wrong and corrective actions they can take...

I believe software should explain itself to the user. Even if the user may not understand.

If you feel uncomfortable telling the User What you're doing, and Why you're doing it, you probably Shouldn't Be Writing It!

If everyone did as much, there'd be entire classes of software (and the ethical bad juju that comes therewith) that wouldn't have been written.

Having a useful error message in all cases requires understanding all possible error conditions in sufficient detail (vs a catch all). Most system don’t have a clear enough grasp of all possible error conditions.
This is the root of the problem, I think. Especially in JavaScript with the blanket ‘catch’ mechanism and no real good way to have any idea of what exceptions could have even been thrown in the current context.

Obviously the dev will have some idea of which error could have occurred (hence the use of ‘catch’ at all), but it’s not straightforward to enumerate all possible exceptions in that moment, and reason about some subset that should be human-readable, and then come up with some sort of instructions about how to fix the problem.

Maybe that’s the point of the root comment - the exceptions that the dev is trying to catch and prevent from affecting the user should have those human-readable descriptions. And the rest should be silently logged?

But that still just leads to the generic “Well, this is awkward…” errors that you see these days.

It’s a tough topic, and even having the insight of (for example) Java’s ‘throws’ still doesn’t mean the developer explicitly understands the state of the application when those exceptions are thrown (in order to provide some sort of useful message to the user).

> 'Unexpected error occurred in logTicketResponse'

I prefer this one, despite the fact that users might like the "cutesy" option better. If the user creates a bugfix ticket, the more information the dev receives the better. When you receive a ticket that says "_____ didn't work" and nothing else, how are you supposed to act on that?

When possible, error messages should include _something_ anything to make it actionable. An error code, a descriptive message. Your example tells me exactly where to look in the codebase. I don't care about the verbiage, but generic error messages are almost impossible to reproduce in many cases, and should only be used as a last resort.

Absolutely not. A cryptic error message still provides value to the user even if they don't understand it. Not only can they search and ask about it (maybe someone else does know), but they can also figure out a workaround by observing the system and under which conditions the error arises. You don't necessarily need to know what "Error 0x12345" means, but if you notice that it only happens under certain conditions, you can now work around it by not running the system under said conditions.

A bullshit error message on the other hand not only makes searching useless but also prevents the user from exploring towards a solution since they can't even tell different errors apart if they have the same generic message.

They aren't mutually exclusive. The cutesy message also provides useful information (this is our fault, unintended behavior etc). Why not have both?
The thing is, cutesiness does not convey anything either useful or specific, and, as this discussion uncontrovertibly shows, may be taken in unintended ways, including as being patronizingly dismissive. This is hardly surprising, as the context in which the error occurs cannot be known to the message's author. One's reaction is immediate and visceral, even if, on reflection, it probably was not intended that way (though I have known one or two developers who always blamed anyone but themselves, and particularly users, for errors.)
I feel like this is unfortunately a semantic difference only - "cutesy" means different things to different people. Cutesy can just mean "informative but written in a friendly manner" to some people while as you and I understand it to mean "Jovial but unhelpful" - I think the user you're replying to is interpreting it in the first manner. A good example of a "good cutesy" error message might be Chrome's No Internet screen: "It looks like you don't have any internet, here are some ways you might be able to resolve it... but also here's a little dinosaur jumping game to pass the time".
Regardless of whether one might call such a response as being “cutesy”, it’s not the sort of response we are discussing here. The problem with the cutesy messages being discussed here is not that they are cutesy per se, but that their cutesy aspect is uninformative and quite possibly annoying.
“There was a problem loading the QR code. Show this error to a member of staff and they will let you on the train”

Would be pretty cool.

Follow up email with say $1 credit and and explanation later “our technical team is looking right now to fix the problem you had today caused by our systems” would be cool too.

I am glad I read the post to make me think more about errors.

Errors are tricky: an exception can happen in so many different ways in the app and you have to write code to convert some unexpected thing into a bold plan for the user. It is like codifying a crisis leader!

It's amazing how few companies are unwilling to give away free stuff for errors while also wringing their hands about why accidental errors caused a huge negative PR event - a dollar is probably less than the cost of the CS person spending 15 minutes with the customer on the phone and yet it turns a negative experience into (for most people) a positive one. "Sure we missed our train, but we got new tickets and a bag of chips out of it" is something no one rational would say because it sounds ridiculous, but it is something most people would feel.
This is an interesting point. It is more the gesture rather than the monetary value.

And probably because no one else is doing it. If every bad service you got for everything got a refund then it would be normal and I would think: "meh just a $1 refund again, why don't they damn fix it... shrug".

Tipping is an example where it is really appreciated in non-tipping cultures.

Which speaks to how marketing and "PR" need to keep up with culture and people's expectations today. If you want to exceed expectations that is.

The failure mode of clever is asshole

- John Scalzi

> “Token not provided in guest headers.” I have no idea what this means, or what I can do about it.

At least this example gives you something that you can report to support of you do contact someone about the issue. It if you are a bit techie you might be able to judge for yourself if trying again is worth it or a waste of time. Many issues don't even give you that much.

My all-time favorite:

> "MySQL server has gone away"

Gone away? You mean like it packed its bags and hopped aboard a train to another town? Surely you're not trying to say that the connection timed out or anything more specific.

I kinda wonder why that was never fixed/improved. Too many error handling dependent on that specific message maybe.
Maybe because ‘gone away’ is the best it can know without a full network diagnostic? Else why is the connection timed out: did it do something wrong and get punished? Or did I wait too long to get a reply, or perhaps I was online too long today, or are you saying it is shareware, and I need to reset the trial clock? xD
In this case it might be hard to improve. It's a message generated by the client which means that it was expecting something from the server and instead the connection was terminated.

It's a sign that something has gone wrong on the server side, but it's impossible for the client to know what that is. Especially because most of the time MySQL connections are each a thread and there may be time between when something server side terminated the thread and when the client tries to talk to the server again. It's better for the server to release all the resources immediately instead of waiting for the client so it can return a more helpful error message.

> the client was expecting something from the server and instead the connection was terminated

That’ll do fine

More classic: the XYZ server "did not respond in a timely fashion": informal (without overly technical concepts like terminating a connection), avoiding possibly wrong or useless details, abstract (implying that the user is a mature person who understands that clients need to communicate with servers) and easily combined with high-level instructions like "check for server problems or network issues".
the XYZ server did not respond in a timely fashion

This error message is still potentially wrong and useless though. Potentially wrong: the client is in no position to judge whether the server didn't respond, the server didn't receive the request, or the response got lost along the way. Useless: "timely" isn't succinct enough, what was the developer's expectation of a timely response? 5 seconds? 30 seconds? 5 minutes?

"No response received from server XYZ after N seconds" is both more accurate and more informative.

> ""No response received from server XYZ after N seconds" is both more accurate and more informative."

Like those news articles which breathlessly report "nobody from the company was immediately available for comment" as if that was as interesting or relevant as a comment would have been. It isn't. Wait a couple of minutes and call them back, then report what they said. Imagine you call Comcast callcenter about your account and the conversation goes:

You: "I ordered xyz deal it but I'm still seeing the old price, can you help?"

Employee: "Sure, will you hold while I check that on the computer?"

You: "Yeah, ok"

pause

Employee: "No response received from computer after 15 seconds. Click {hangs up} bzzzzzzzzzzzz".

You: "that was accurate and informative, thumbs up"

I'd add that it's obviously the client software's job to decide what timeouts (and what behind-the-scenes retries and fallbacks) are appropriate, and when a timely response has arrived or not.

The end user doesn't need to know whether, say, waiting 15 seconds is sufficiently generous: there are software engineers for that.

"The connection to the server was lost" is another common phrasing that I like
Except unless you provide a contact information in the error dialog, the average user will forget what the message said when they close the dialog to contact support. Some users might be savvy enough to take a screenshot, but that isn't likely a good support plan.

I have come to believe that many (most?) engineers and user experience designers actually hate people. I was recently in the western U.S., attempting to get information from a ski/bike resort about mountain biking there for the day. This was no two-bit, small town resort. The website was absolutely terrible. Links to basic information led to 404 pages. And today, my wife and I were looking for information about our local museum's free teen membership program. On the info page, there was a large button with text "Apply Online." Clicking that button led to a form that could only be printed. There was no way to actually "apply online."

I've been working in the industry for almost 25 years. One of the most important things I've learned is that no matter "intuitive" the user interface seems to me, an engineer who likely has the various workflows burned into memory, you either need to have someone with NO experience look at the UI or, at the very least, have the ability to look at the user experience through the eyes of a non-tech-savvy user. Or, even just an engineer who just wants to download a trail map, or apply so his kid can get into the museum for free.

These days, if something is print only or has similar stupid hurdles, I suspect that the purpose is market segmentation. Some people will prefer to avoid the hassle and just pay full price or go without. Which means the company can offer that much more value to the people who are willing to go through the hassle.
> Except unless you provide a contact information in the error dialog, the average user will forget what the message said when they close the dialog to contact support. Some users might be savvy enough to take a screenshot, but that isn't likely a good support plan.

Do you really intend to put links into error dialogs ?

Faced with that dialog you're already pissed, the software disappointed you and you now have to take an extra action (push the button) to even continue using the app or try again.

Imagine on top of that putting a link that pushes you to either your phone dialing popup (which will take you out of the app and you'll be on the phone while trying to get back to your previous screen to explain what happened), or a link that throw you into a page, and you'll be trying to understand why, and what you're supposed to do with it.

I find the author deeply disingenuous in that we have the emotional rant, but not what they actually did next as a user to solve that issue. Did they just refresh the page, the request resent and everything went well ? Did they send a "WTF?" angry message to support, who tracked their session from their username and made it all good for them ? (and yes, Trainline has really good support for the industry they're in)

I mean, it might as well be that the app auto-resent the request and solved the issue without the user doing anything, and we'd have not idea. That error message probably was there just to state it failed at a specific try, and further action depends on what's happening next in the app.

> Imagine on top of that putting a link that pushes you to either your phone dialing popup (which will take you out of the app and you'll be on the phone while trying to get back to your previous screen to explain what happened), or a link that throw you into a page, and you'll be trying to understand why, and what you're supposed to do with it.

Putting links in error dialogs seems like a set up for a situation where clicking that link produces another error with another link that also won't work followed by another and another etc.

Just reminding me of all the times I've seen "Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request"
> Except unless you provide a contact information in the error dialog, the average user will forget what the message said when they close the dialog to contact support.

This is true, even of other devs which is particularly annoying¹². But these days I have the luxury of not dealing with clients directly so can just close things with insufficient information as CNR and move on, and have the joy of colleagues who make better use of the brains they have!

Sometimes the only solution is ample telemetry and hoping that the user can give your a reasonably accurate time of the incident when making a support call so you can reference that information. Though this can't help as much with client side problems that block the telemetry getting through, what information you do get can help greatly with reproducing, or just walking through with reference to the code, the issue, to work out what has gone awry.

> I have come to believe that many (most?) engineers and user experience designers actually hate people.

While I do occasionally work on front-end matters I'm usually not a UX person these days³ so I can't speak from that angle, but yes I do dislike a lot of the general populous! I think the problems you describe come from a position of disinterest rather than hate though, and a sign that a more varied team is needed. You need someone who is passionate about providing a good UX rather than playing with clever things and making stuff technically work. You also need a culture of taking care over your work too rather than doing minimal happy-path testing then throwing it out there⁴.

> One of the most important things I've learned is that no matter "intuitive" the user interface seems to me

I can't remember who said it, but I've always liked the quote “the only truly intuitive interface is the nipple, everything else has to be learned”. As you suggest, it is important to try put yourself in the mind of someone who is hitting your work for the first time without any of your experience, which can actually be quite difficult to do reliably. The other difficulty is the range of users any given application might encounter: sometimes you have to balance guiding the inexperienced, without hindering those who don't want to be bothered, preferably without effectively having two complete UIs to maintain.

--

[1] being interrupted with “I'm trying to X and I'm getting errors” “What errors?” “Something about the database, I didn't take a note” (to which the answer is “well reproduce it and come back to me when you've got useful information”, but by this point I may have lost concentration on what I was working on).

[2] One of the most annoying people I've worked with once said in response to me asking for the usual details, in an exasperated tone, “you always ask that” - the idiot was well aware that the information would be required and got irritated at it being needed instead of actually bothering to note it.

[3] I used to do a bit of everything in smaller companies, as things have grown I've specialised more towards database work, and infrastructure to support other devs.

[4] Though we have a full QA resource, we spend plenty of time doing “devtest” and making/updating/checking automated tests. QA (or in companies without that resource, the users) shouldn't be finding glaringly obvious issues because I rushed through one test case and didn't even think about anything closer to the edges.

it's not a cutesy error. it cuts the bullshit and tells you what went wrong right in the body
It tells the developer what went wrong. It tells the customer nothing.
Which is better than not telling either. At least with this one, a technically-minded customer can sometimes infer the meaning of the developer-focused message.
I have a problem with software that tries harder to be "cute" than useful, but that's a rant for a different day...

I think the issue with error messages like these aren't so much that they are cute, it's that while the developer thinks they are being clever somehow, these kinds of messages usually come off as patronizing or condescending to the user, especially when the user DOES have the technical skill to know what's actually wrong.

Maybe "Guru Meditation" would be better?

At least it contains the suggestion of being more serene about the whole affair.

> This post was adapted from a thread on Twitter.

Lot of words to express frustration when a Tweet with an image attachment could convey the same.

"Well this is awkward" is just the "header" for any error you may experience during the process with that application, and is the same thing that Mozilla does (essentially) when the browser crashes.

Could not agree more. At least it better than "Something went wrong. Try again later." That drives me berserk.
Ok, so what do you prefer then? I mean other than bug-free code of course.
A brief description of the error, an error code, and (depending on context) instructions on how to get help is much nicer than “something went wrong.”

Even something simple like “the request timed out” helps the user troubleshoot and rules out entire classes of errors

(comment deleted)
I like the cuteness it helps not take things too seriously and focus on the problem. Things failed and you broke the internet for everyone on the planet but there is no time to panic only to focus and get things done.
I really wish more devs would treat errors as first class, the same level of importance as a success response.

We had an error page at a previous job that had an <h1> OOPS!. Not sure who made it, but they didn’t think much of it, and a lot of users really didn’t like it.

This is why I have grown to hate expressing errors as exceptions. Nowadays, I handle errors one of two ways: it's either part of the return value of the function (i.e. an error state, usually a case of a variant), or the caller passes an error handler object, with the default behavior is the error handler records a list of things that went wrong. Threading the error handler through generally isn't too bad; then you can check it whereever you want and handle it at the top level. It's almost impossible to swallow an error unless you create a new error handler object and throw it away, which would be a very rude thing to do.

This works especially well for parsing data, as you can write most of the parser completely oblivious of previous errors and keep on truckin'. The top-level parse routine will surface the first lexicographical error. The code is very clean but still gives really good error messages (and multiple! I used this for the Virgil parser and entire compiler).

Let's make a distinction between errors delivered to users buying a train ticket on an app (as in the original article) and errors meant for developers. It feels like hardly anyone in the thread is making that distinction.
and if you are going to insist on printf debugging please stop spamming emojis
My biggest frustration is long error numbers which can't be selected for copy/paste. Worse yet is web addresses as text instead of being clickable links.
Firefox has one of these when a tab process crashes: "Gah. Your tab just crashed." https://user-media-prod-cdn.itsre-sumo.mozilla.net/uploads/i...

I really hate the way the "Gah" wording feigns shock, as if Mozilla are also inconvenienced alongside me. Then the meat of the error implies I am at fault. It's my tab that crashed, and I caused it to happen by doing whatever I did on whatever page I was choosing to visit. Any blame is deflected away from Firefox itself.

Then it makes me feel doubly bad because I immediately realize I'm getting upset at something incredibly trivial, but man it annoys me!!

Yeah, I think there are two approaches to any text a user sees in your app: is it copy, or is it data?

The file/edit/etc menus are data. Concise, clear errors are data. "Gah. Your tab just crashed" is copy.

I don't get shock from "Gah." I get embarrassment and disappointment, which seems appropriate for the situation. Firefox is ashamed that it screwed up.

Then again, I'm from the age when the internet was still fun, and everything didn't have to be corporate, uniform, serious, and boring.

All the fun will be sucked out of software development one mildly offended HNer at a time.
Doing things that are kind of funny for the developers, and then ordinary users have wildly varying opinions of... isn't so great.
You could make that argument about any copy. If you pick something neutral tone someone will say it's sterile and uncaring. If you pick something technical someone will say it's pointless and confusing. If you pick something firm someone will say its angry or condescending.
Yes, but I like the reference to Scalzi someone else made in this thread: the failure state of clever is "asshole."

Sterile, professional, and uncaring is a heck of a lot better than a chunk of the user population thinking "it's worse than them not caring-- they're actively mocking our complaints/problems!"

"Mildly offended HNer" briefly registered visually as "one mildly offended Hitler at a time".

I'm not sure which form I actually like better. The mental image accompanying the misparse amuses me.

We should never take HNers too seriously lest we suck all the fun from everything in life.
There is always plenty of fun to be had in software. It should never be had at the expense of users.
I don't inherently mind fun, but error messages being fun/cutesy is not the time.
You were 12 using the hard work of a generation of engineers to surf geocities without knowing it.

>When I was a child, I spoke as a child, I understood as a child, I thought as a child: but when I became a man, I put away childish things

The current generation of engineers didn't get the memo.

You were 12 using the hard work of a generation of engineers to surt geocities without knowing it.

You make poor assumptions. I was banging out code for a chemical company on a green screen Wyse terminal and sending e-mail with bang paths.

That you think the internet should be whimsical and fun explains the state of security on SCADA devices.
Damn. Why so harsh?

Does the Internet need to be regulated like industrial control devices? Should we get permission from AT&T to certify what we can connect to the network?

The Internet is a tool for everyone, not just gray-beard, elitist gate-keepers. There is room to experiment, make mistakes, and even harmless fun.

Keep in mind Firefox is the least corporate of all major browsers--recent CEO shenanigans not withstanding.

EDIT: > You were 12 using the hard work of a generation of engineers to surf geocities without knowing it.

Um, so? Thousands of generations of inventors toiled away for you to even touch a computing device (fire, argiculture, rule of law, professional armies, enlightenment, vacuum tubes etc.)

I think you're highlighting the issue on why this is a bad choice. Words like "gah" mean different things to different people. They may not even mean anything at all to non native English speakers.
If they are aiming to use their browser in English I don’t think that’s bad? Firefox is translated into many languages, so if someone uses the English version it’s likely deliberate.
Gah is bad because (1) it is not precise, (2) it has inconsistent connotation.
English as a second language speaker here. I've used all programs in English for a very long time because 1) the translations universally suck 2) the non-English terms are more cumbersome, confusing, and harder to look up.
I'm from that age too, but it groomed me to cringe when a $XXM international corporate brand tries to be casual and fun. It doesn't feel authentic. It doesn't feel like it speaks from some relaxed, hacker culture at Mozilla. It feels like somebody in a designer hoodie with an ocean view conference room wants to brand Firefox as the fun alternative. It only makes me miss those old days more.
My memory of the 'old days' was that instead of a tab crash, the whole browser would crash, and instead of a helpful error, you'd be forced to terminate the process and get some generic Windows error feedback prompt. I suppose that was real hacker culture?

Either way, I don't mind cutesy messages so long as they contain at least a code which can be traced back to wherever an exception was thrown or whatever. The main problem is generic error messages which are a problem whether they're cutesy or not ('an error has occurred').

Not at all - real hackers were not using windows obviously!
Guru Meditation 0000010x48454c50
Cutesy messages imply that software can be no better.

Oops, as a bunch of well-payed professionals we messed up but look at the thought that went into the copy that covers our butts...?

When software fails we failed. Stop with the lipstick on our collective incompetence.

The only time I've seen a cute error added it was an engineer who just wanted to add some playfulness to the product.
I don't need "corporate, uniform, serious, and boring."

I generally just want things to be genuine. With error messages, that should be no-nonsense - when software crashes, I'm not interested in how verbally clever the vendor can be.

Remember your cutsey expression of your individuality might be cute the first time your software crashes, but after the 100th crash, doesn't come across quite the same way.

"Gah," doesn't reflect shame to me, but mild annoyance. Firefox is annoyed that there was a screw up. It doesn't even use "I" language.

None of that matters, though. We're looking at this like developers do: From a distance while not being personally affected by it in the moment.

The article discusses this point:

> What seems fun and light-hearted in your office may read very differently when you’ve just ruined somebody’s day.

They use examples of transport, telephony, and finance; all three of which may involve the browser.

The author also acknowledges it's okay to be fun:

> There’s a place for humour and levity in software, and my code has plenty – but error messages are rarely it.

I get fatuous inauthenticity. It's a computer program not a person, and no single person wrote it or actually feels any aggrieved embarassement for that mishap, since they aren't manually performing the task that went wrong. They may say "gah" sincerely sometime later when they read a bug report, but that is some entirely seperate thing.
This, right here. Exactly this.
Yes. British railway stations have a computerised voice apologising for the delayed trains. If it was a human making these announcements I could imagine them feeling a smidgen of regret. But with a computer I know nobody gives a shit.
Although I do miss the fun and playful nature of the old internet, before corporations moved in, I would still ask you to consider the following:

You dial a wrong number. Which do you prefer to hear

This, https://www.youtube.com/watch?v=aTNthUcvyEM

Or this, https://www.youtube.com/watch?v=6qzr-V-ttZ8

If you're just trying to call a friend, and you put in a wrong digit, the fun response might be a brief chance to have a good laugh at yourself, but, if you are doing something like say trying to call a doctor to ask for lab results on a cancer screening, or you're trying to call the bank to report a stolen credit card, and you get the wacky "Whoops! Looks like you you need to get a dialing wand! lol"[1] response, it is not going to be well received.

I guess what I'm trying to say is that a joke message can have a certain place, but I think that it means the developer has to take some time to consider "Is this ever going to be used for something serious or time sensitive?" If it's just a small project, who cares? But if it's going to be used by more than a friend group, or a niche circle of 100-500 users, it's probably better off left in as a joke comment, instead of a user-facing error message.

[1] https://youtu.be/npSVS9CJyPc?t=20

I think "your tab" here implies "your loss" not "your fault".
"I'm sorry for your tab."
(comment deleted)
Kind of like how Windows' first-time boot-up greets you with a flat (and totally inappropriate) "Hi"

Like fucking seriously, not even "Hello"? "Hi" is how I greet the coworker I don't really even like that much. Whenever I see this I think of the Argonian NPCs from Oblivion, who would also greet you with a very flat "Hi"

"Greetings," "Salutations," even "Welcome!" would be a better choice here.

I'm kind of voting for "stop right there, criminal scum!"

If the greeting is going to be tonally inappropriate, why not go all in, right?

I kind of like the idea that someone who shouldn't be on my computer would also see that.
Windows used to have an error message that read “This program has performed an illegal operation…”. Your suggestion would have fit in perfectly.
My grandma called me in a panic for this one.
I mean, your work computer is usually a co-worker you don't like that much (because it never quite does the thing I want), isn't it? Heck, I'd say that about my home computers too.

The computer for me is like the co-worker that does almost, but not exactly what I'd like it to do except when they do, the guy thats a little awkward when you run into them in unexpected situations, but he works pretty hard and works at least as many hours as you do.. except when they don't.

I view my work computer as a manifestation of half a century of highly technical work by millions of brilliant engineers, each and every one of them doing a slightly crappy job.
the importance of "hi" vs. "hello" is so low, so far down the list of bad messages that it's on the part of the long strip of paper that it is located about halfway back from its trip to the moon.

this is what you choose to complain about? your life must be exceptionally trouble-free.

They're trying to come off as friendly and inviting, but I read it as half-assed.

Perception is a bitch.

If I had my way we'd dispense with all these stupid pleasantries. My computer is not my friend, Windows is not my friend, and Microsoft and their awful marketing droids (who almost certainly guided their choice of words here) are most definitely not my friend. Who decided that Windows needs to talk to me like a middle-aged soccer mom (or an argonian shopkeeper)?

Nothing wrong with "Welcome", "Error 404: File Not Found", "Bad command or file name", etc etc etc. (Ok, maybe the last one is a bit cryptic, but it is telling me exactly what went wrong without any fluff, which is how all software should be.)

Computers are our servants, not our friends. They should act like it, and we should stop trying to humanize them.

> but I read it as half-assed.

Why is formality any more natural for a user interface than casualness? This seems like an extremely arbitrary personal preference masquerading as reasonable criticism, no different from getting riled up about the fact that Windows default theme is blue when it should _obviously_ be green.

> Computers are our servants, not our friends. They should act like it.

I had a live-in housekeeper for a chunk of my life, which is roughly as close to "servant" as one gets in the modern West; we communicated in normal, casual English. If you are going around insisting that service workers address you like an aristocrat, you're an enormous asshole.

Computers don't have feelings, they process data. I don't want servants, I have computers for that. So how I talk to them shouldn't matter.

In fact, if you have a servant at all, YOU are an enormous asshole. Nobody should live in the shadow of someone far more privileged than they.

That’s how you feel about computers, but that’s not how the average windows user feels about their computer. I’m not saying the average Windows user considers their computing device to be their close personal friend- but there’s a reason that the blue screen of death was phased out. Nobody (not even you) wants a hostile relationship with their own device (eg: BSoD) but most users would prefer to think that their own device is at least their confidant if not their ally.
Would a confidant or ally obscure the reasons for problems behind a friendly face? Would they use subtlety and emotional manipulation to push you to use the things that they want you to use?

Is my computer my ally/confidant, or is it trying to control me from the shadows?

An ally does not behave in the way that Windows has been programmed to behave. It should be straight and narrow with me when something is wrong. Not friendly and fake-diplomatic.

Once again, we are shown an example of how business greed and the desires of average, illiterate users ruin computing for the people that understand them and are capable of making the most with them -- the power users. Of course, rather than spending the extra effort needed to elevate ordinary users to a more literate status, we happily stoop to their level as it makes obscuring the various telemetry and profit machinery embedded in Windows far easier.

It seems like you have more of an issue with Windows specifically, not with an OS saying "hi" on the setup screen
> Nobody (not even you) wants a hostile relationship with their own device (eg: BSoD) but most users would prefer to think that their own device is at least their confidant if not their ally.

I have a very hard time believing that Microsoft cares at all about avoiding giving users the appearance of a hostile relationship with their own device. So many choices they make (or take away from us) are way too user hostile for that to be their concern.

They have no problems making it painfully clear that if you are running windows then the device you paid for belongs to Microsoft and they will dictate what it does whenever they want, along with what you are or are not allowed to do with your own system.

Lol, I have a very hostile relationship with my Windows machine since around the Windows 8 era, but that's entirely on Microsoft ;)

A user shouldn't be victim to the whims of some far away UI/UX designer who only designs for what some data fortune teller thinks is their "average user". Computers are machines, designers need to stop anthropomorphizing them.

At the very least give me options to switch that crap off.

PS: But by far my main gripe with the "modern" UI philosophy is: a "No" means frigging *No*, it doesn't mean "not now" or "maybe later", I also can guarantee that I won't change my mind (and if I do I will find that option in the settings window myself, thank you). Not offering a simple "no" in a yes/no choice is an insult to the user's intelligence, it's as simple as that.

It's not like the "blue screen of death" was a feature. It was the kernel aborting due to an unrecoverable failure. They "phased it out" by making the kernel more robust because folk like their kernels to not abort, not because the blue screen was an interior UI choice.

I remember getting a mac to "blue screen" back in 2008 or so, by repeatedly plugging in a Logitech mouse while pushing its buttons down.

Also Windows still bluescreens from time to time, only now it has a giant sad face emoticon, with the error code a tiny label tucked away in the fine print down the bottom.
Right. It was phased out in favor of something intending to seem friendlier.
"Nobody should live in the shadow of someone far more privileged than they" - pretty sure 99% of the world's population does do exactly that...
I think a big part of it is the fact that it's a full-screen captive display, with an excessively long timeout. If it was a stupid little popup in the corner that said, "Hi, welcome to Windows!" It would have been cute.

If you're going to get all up in someone's face and demand their complete attention, there's a high bar for expected politeness, or at least some entertaining wit. "Hi" is just lazy and conceited. "Welcome. Please wait while we prepare your desktop," would be tolerable. A Maxis style status bar rambling on about "reticulating splines" would be funny.

To relate it to your experience with a housekeeper, if a housekeeper shouted your name from across the room, tapped you on the shoulder repeatedly, and then unplugged the TV you were watching to get your attention, you would expect them to say something like, "my apologies sir, the den is on fire," rather than, "lol, howdy."

A computer isn't a servant, though. It's a tool. A circular saw with a sassy personality means a trip to the hospital...

> if a housekeeper shouted your name from across the room, tapped you on the shoulder repeatedly, and then unplugged the TV you were watching to get your attention, you would expect them to say something like, "my apologies sir, the den is on fire," rather than, "lol, howdy

You're talking about something completely different, urgency rather than formality. In the rude interruption example you gave, you combined the two despite them having nothing to do with each other. "holy shit bro the den is on fire!" would be an infinitely more appropriate reason for a rude interruption than "my esteemed sir, how goes your day".

As I said, it's an arbitrary aesthetic preference. GP's irritation that computers dont address users as aristocrats makes just as much (little) sense as getting angry that they don't shower the user with compliments about your appearance.

Like, it's cool if they're into that, but it's super weird to describe it as a general principle of UIs

>> My computer is not my friend, Windows is not my friend

>> "Hi" is how I greet the coworker I don't really even like that much

So you're saying they nailed the pitch perfectly.

Or the condescending statement from Cortana about agreeing to the Windows EULA, or else... Ya know...<contemptuous pause> No Windows.

Seriously. It is the one thing that if I didn't need a Windows test system, I'd reject it every damn time just for being there. In fact, if they were a human, they'd be kindly asked to evict themselves from my domicile in perpetuity.

The tonality of all the new copy in Windows 10 is just bad. It's like a bunch of nontechnicals got together and tried to cuteify the OS.

I had totally forgotten about how obnoxious Cortana was (I always turned that shit off first thing), or the condescending text that accompanies large updates requiring you to re-certify that no, you don't want to use Microsoft Edge, thank you

Don't even want to imagine what Windows 11 is like, none of my PCs can run it (thank god)

While still bad in that way, its probably better than 10. It has a heap of its own issues, but my personal experience hasn't been quite as grating as far as the language is concerned. It's a healthy reasonably unoffensive middle ground of informative/understandable and casual. W11 has bigger issues than language.
Just taking a step back here, I'm willing to bet OP and some of the other folks replying (like here: https://news.ycombinator.com/item?id=32338845) are just fulfilling predictions made here: https://spectrum.ieee.org/study-nobody-wants-social-robots-t...

This piece focused on a machines appearance, but later they comment that really what's at the root of peoples issues (the people that have them) is that they resent the anthropomophizing of machines in general - which I would take to include speech.

This is an internet forum (kinda), ya know?
It is bad enough that it fucking talks. First time I encountered that it screamed at me from the other side of the building because someone at Microsoft decided greeting new users with speakers turned to eleven is welcoming.
Well, you chose to complain about somebody complaining about an item you deem trivial - so, by your own premise, your comment is effectively "$trivial ^ 3".
(comment deleted)
love it when Windows crashes and you get the classic: :( Something went wrong.
I miss the bluescreens that didn't have emoticons
I don't mind the sad face in that context. It shows they know they let you down.

I maintain a build system at work, and I have it display an ASCII nuclear blast when folk pass in command line arguments that are known to be "dangerous".

When did that sad-face blue screen start? I'm thinking it was Windows 8
FWIW I don’t think that hi/hello have different connotations of formality. I use both interchangeably.
For me they definitely do. Hi is much more casual.
This. Both are informal greetings, but "hi" is more informal. Mostly interchangeable, but I tend not to use "hello" much - usually either "hi" when passing a peer in the hallway or "good morning/afternoon" if I need to be a bit more formal. FWIW, I was raised in the US, but with Scottish parents, so my speech & vocabulary differ a bit from most Americans.
That might be specific to where you are from. I can only speak for Australia and New Zealand, but "Hi" is perfectly acceptable. Unnecessarily formal speech can come across as disingenuous, and maybe a little patronizing. Although the same is true for overly familiar speech as well.
I say hi in Germany all the time, which even has a formal form of interpersonal communication, and I never even get a second look from anyone. I say hi or hej on purpose because I am trying to teach Germans to be more efficient (some say moin, which is decent). If hi is fine here, then it is certainly fine in any English-speaking country/company. :)
New Zealand doesn't have formality. People don't even wear shoes.

I realise I'm supposed to think it's charming but it's always made me cringe.

The Hi bugs me not a bit.

The "All your things are just where you left them" during a major upgrade? That gives me the shits.

That screen was so bad. I loved hearing anecdotes about folk seeing it and then subsequently discovering data loss.
> "Hi" is how I greet the coworker I don't really even like that much.

Interesting. Sounds like I should stop saying "hi." That is the default in my native language but I work in an American company.

Nah. Hi is fine. So are hey, hullo, hallo, and in some casual companies and especially with friendly co-workers, even "yo" and "\'sup".

But seriously, hi is fine. There's nothing wrong with it. I personally think it is friendlier than hello, and it is certainly more efficient, which is why I say hi in Germany when people say "hallo" to me. Like, seriously, 2 syllables to say hi? So inefficient.

"All your files are exactly where you left them," it would be an awful shame if something happened to them...
Also, that animation looks 100% like how they portrayed your computer being hacked in movies. You know, when the UI completely disappears and the only thing you see on the screen is the message that the hacker wants you to see.
I don't know, is the familiar "Hi" all that different from, say, the "Happy Mac"?
Windows XP used to have "Welcome". It was a better choice... in the English version, that is. Apparently properly translating that word was difficult because e.g. in Russian version it said something that'd be roughly equivalent to "a welcoming" in English: they've used the word that means "greeting" but can not by itself serve as a greeting. The overall effect was that you were left mildly puzzled: "did they just forget to put an actual greeting in there or?.."
(comment deleted)
What software translators (who are usually outside contractors) get is a list of strings with no context, no opportunity to ask what was really meant (including part of speech—blame English—and the intended meaning of this or that %s), and frozen code even if the programmers screwed up (show of hands—ever built up a sentence out of interpolated parts? there, you screwed up).

If you’re lucky, you get English string IDs (and not Chinese or numeric ones). If you’re lucky, the list is complete and in order (and not stripped down to only the untranslated parts so you don’t see how much the agency is avoiding paying you). If you’re lucky, the customer has an localizaton QA department (i.e. a couple of guys per language) which will walk through the UI to try and find the most obvious screwups (and won’t not just merge the Trados back into the source and run the resource compiler).

Every professional involved understands it’s impossible to get a good translation that way. None of them can do anything about it, because the agency will just switch to a less picky one. The good ones try to make something of what they’re given; the bad ones just give up. Almost none of them actually use localized software; almost every one of them looks on wistfully when you show them the Gnome sources with the paragraph-long TRANSLATORS: explanations for every other string. (That’s why Crowdin and Transifex drive me into such rage, BTW—they essentially reproduce the commercial broken-by-design process for hobby developers.)

You know what the most recent innovation is? Have the translator edit a machine translation.

Give your translator something to work with. And for goodness’s sake, if you can afford it, find a couple of freelancers and listen to them—that’s who is going to do the work anyway, might as well give them the whole sum and not the ≤ 30% they will get after the agencies’ cut. (Yes, a small but sizeable portion of candidates will be blatantly incompetent and/or try to screw you over. Duh. It’s a freelancer market.)

Zoom used to translate "Quote" (as in "quote this message") in their German app to "Kostenvoranschlag" ("estimate of cost").
My all time favorite machine translation was from a very early online service (I think it may have been by AltaVista) that translated "Würzburg" as "peppering castle".
I'd find "Salutations" much more apt to a fantasy role playing game than an OS, but I'm not a native speaker. I'd still be chuckling all day, I guess.
No need to qualify your statement, as a native speaker myself I can confirm your assessment is 100% on point.
> "Greetings," "Salutations"

And this is why HN shouldn't be taken seriously for user-facing design decisions.

Right? So off the mark, I don't think they were near it to begin with.
Maybe it's the prevailing trend among non-HN people that sucks.
“Gah” reads to me like disappointment. “Gah … that’s the third time this week.”
Honestly, as an engineer "Gah" is generally what I do say. When I experience difficulty with software others create, when I discover frustrations with software I create, and when I discover that a customer experiencing an issue that made it out the door that clearly shouldn't have.

It's a very caveman-esque "gah, thinky box no work" type expression, or surprise "gah! wtf just happened!?"

Not trying to invalidate what you feel - just trying to share a different perspective. Perhaps a nudge to give the devs the benefit of the doubt that they don't want you to feel bad things when using what they've poured a lot of energy into.

I say it too, but I still don't want my software to create the appearance of commiserating with me.
Gah! It looks like you broke your tab. We all feel sad when we make mistakes, but that's why pencils have erasers. Hey, it looks like you're writing a letter.
As a computer professional (I assume), you have a firm understanding of where the text of those messages actually comes from, and that any specific emotional wording can be ignored. Thus, "commiserating" messages feel patronizing.

However, to someone for whom computers are mysterious and capricious black boxes which seem to have been put on this Earth solely to test their patience, "friendly" messages may carry tonal information which you take for granted:

* You did nothing wrong

* This is unintended and regrettable behavior, and we apologize

* Nothing is catastrophically broken

Consider that your mild irritation with a patronizing message is possibly preferable to some poor grandma hurling her computer out the window because "This program has performed an illegal operation and will be shut down."

I worked in tech support for several years; I am fully aware that I am not like most computer users, and that clear, friendly copy makes a difference to non-technical people.

Fortunately, there is infinite space to play in between "Gah"/"Well this is awkward!" and "This program has performed an illegal operation and will be shut down."

Thanks for "moving up a node" to provide a higher-level framing of the situation. This is what I come to HN for. Your other comments are often similarly useful https://news.ycombinator.com/threads?id=dTal&next=32177916
That's the nicest thing anyone's ever said to me on HN. 9 years of commenting made worthwhile!
If users were rated by the quality of their comments, you would be near the top. When I find quality like you provide, I bookmark the comments archive page to review later.

(While I appreciate what you do, hopefully this doesn't encourage you to spend time away from what all else that matters to you to write better comments.)

You did nothing wrong

This is unintended and regrettable behavior, and we apologize

This is what the message should be. Maybe. I'd rather the software I use be apologetic than attempt to be my friend. That said, I'd settle for "we goofed, sorry" So it's not so much the tone (casual), but the content (own your defect, don't commiserate).

You're reading way too much into it. It's just a cute error message, not some psyop to try to trick you into blaming yourself.
Siri is the worst with this, but instead of "cutesy", when it's failing to execute a simple command, it goes for a smarmy and sarcastic response. I'll never understand the mindset of the putative audience who its designers think this will please.
Siri used to randomly give cutesy responses when I asked it to set a timer instead of repeating the time back to me, which I found incredibly annoying. Fortunately they stopped doing that a couple years ago.
Siri has degraded so much for me that I suspect a sarcastic response is now beyond its abilities.
Apple has definitely softened up Siri’s demeanor over the years, and I think it was a deliberate decision to introduce her as standoffish.

I once read that waitresses who initially come off as rude earn higher tips, but only if their mood softens throughout the meal. There seems to be something about “winning” the waitstaff over that makes diners reward them with higher tips.

IMO, it was a feature to have Siri come off as rude when her abilities and comprehension were still in development.

If asked the answer to zero divided by zero, she used to say a whole paragraph joke about how you’re sharing your zero cookies with zero friends because you have no friends. There’s videos on YouTube; I thought it was funny. They changed that a few months ago to something more “tame”, but still millennial/zoomer humor.
Today, in response to the query, "What is zero divided by zero?", Siri still gives a flip explanation (but now omitting the reference to Sesame Street intellectual property), followed by the one word sentence "No.". And that's when it's working as intended. Astounding.
From a support perspective, this kind of error immediately puts customers in a bad mood. If you/your company uses cute errors, ask your support team what they think about them. If they're cool with it, they're probably not a problem.
one simple pet peeve of mine is when websites use the word "simply" in their help articles.

it is annoying because I am likely reading the page because I am running into issues so I am already frustrated.

"simply" implies that the issue that I have is so simple to fix and that I'm stupid for not knowing how to do this simple thing

however, most of the time there is some backend or unexpected error and their "simply" advice just doesn't work.

I hate it

That should be one of the top commandments of tech writing: Thou shalt not use the word "simply", because you are either insulting users or leaving something important out. Or both.