Hacker News new | past | comments | ask | show | jobs | submit login
Cut the cutesy errors (alexwlchan.net)
386 points by panic on Aug 3, 2022 | hide | past | favorite | 332 comments



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!!


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.


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


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


Seconded


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


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


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.


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.


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').


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.


Not at all - real hackers were not using windows obviously!


Guru Meditation 0000010x48454c50


"It feels like somebody in a designer hoodie with an ocean view conference room wants to brand Firefox as the fun alternative."

Ah, you've seen the view from their SF offices.[1]

[1] https://earth.google.com/web/search/@37.78972221,-122.388833...


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


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.


This, right here. Exactly this.


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


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


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.


We should never take HNers too seriously lest we suck all the fun from everything in life.


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


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.


It's bad because it's Clippy.


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.


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


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 "your tab" here implies "your loss" not "your fault".


"I'm sorry for your tab."


Tab.jpg | || || |_


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.


“Gah” reads to me like disappointment. “Gah … that’s the third time this week.”


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.


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


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


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


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?


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 kind of like the idea that someone who shouldn't be on my computer would also see that.


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.


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


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


"All your files are exactly where you left them," it would be an awful shame if something happened to them...


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.


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


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.


I don't know, is the familiar "Hi" all that different from, say, the "Happy Mac"?


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.


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


touche


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


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


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


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.


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


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


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.


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.


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


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?


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.


Also stop treating your users like idiots. The "Something went wrong" of Microsoft products is just offensive when it doesn't even show you the error code - it's basically saying that you're too stupid to understand, so we're not going to show you exactly what happened. I'd maybe understand if it was just MS Word doing this, but when an Xbox Devkit does that, which you know - by definition - only professionals can have and use, then it's worse then useless, it's actively condescending.


Nah, it's just that Microsoft doesn't understand it either. That's why it's just logged as a damn guid in the event log, that exactly one other person on the planet has encountered and no one on the Microsoft forums have responded.


> Microsoft forums

"Just run dism and sfc /scannow. It will surely fix your problem. Kindly mark my response as the answer."


You forgot the introduction.

"Hi, I'm Greg and I've been a Microsoft MVP for 10 years. I'm happy to help you out."

<insert robotic answer that totally does not answer the question at all>


To be fair, googling windows error codes is borderline impossible with all the shitty tech support websites.

I think it shouldn't be done for dev tools of course, because devs are the ones that need to see the errors.


“The error code 0xwhatever usually means you have a bad driver. We suggest you run dism and sfc, and if that doesn’t work, buy our software!”


Wait, those “articles“ still exist?

The ones where you search how to resize an image, and the very helpful guide on coolmagictech.com tells you somewhere around the 2nd step to download and run the CoolMagic® MagicResizer™ tool?

I haven’t seen one of those in like 5 years… But then again, I also haven’t used nor troubleshot Windows in those 5 years. Might be a correlation there?


You know, a while back a friend of mine was involved in a criminal case and needed to hand in messaging data to the police as evidence. Problem was, they did not want to hand in the whole phone but the app didn't provide any mechanism to get message history to your PC. The app was not globally popular enough to have publicly disseminated solutions.

Time was at a premium and the one option seemed to be one of those sketchy Windows app at an equally sketchy website where you could buy the software via cc. I explained the risks to my friend who decided to give it a shot (on a clean Windows install which was later wiped, of course).

It worked, just as advertised. We got all the data in a usable enough format. Surprisingly enough.


I always feel bad for companies like that because you're sitting there going "omg this is totally a scam, I'm absolutely going to get my card stolen", and some wee guy in Chechnya is sitting there going "oh hey, my fourth sale of the year, think I'll buy a sandwich and coffee with my massive winnings!"


They absolutely still exist and clog up search results.


You have no idea how much this speaks to me.

I have a broken installer. I get some random error. Googling suggests I need to reinstall the software... whose installer I am trying to debug. Gee whiz never could have thought of that!


I always do a double-take at the "something went wrong" messages from MS and the dinosaur browser errors in Chrome, because they trip the same part of my brain that's been trained to notice phishing emails.


Microsoft products always treat you as stupid. That's a hallmark of their UI design.


The average Windows user is far from being tech-savvy (I’m not going to call them stupid).


That's not the point - if my mum gets an error trying to do something, showing her "something went wrong" is not helpful in any way shape or form. Without even a hint of an error code, I can't help her either even if she calls me and asks for help.

Recently I have this issue with my energy supplier, every time I try to change tariff in the app(like they tell you to) I just get "uh oh something went wrong". Like......that's condescending to the maximum.


Yep. And sometimes it's my fault too! Like, if I was fucking with the router settings to do something but then forgot about it, I'd appreciate “your internet doesn't work, idiot” over “uh oh, something went wrong :(”


Same goes for redditors who need to end their sarcastic messages with /s tag. Okay, so you passively assumed I am too much of an idiot to miss your sarcasm. I will always downvote these posts.


And yet there are 10x the responses of people who clearly didn't get the sarcasm, which comes across textual interfaces way worse than face to face.


Strange take in the context of Poe's Law


Perfectly expressed in this tweet[0], which originated the "Oopsie Woopsie" meme back in 2018:

> "Can websites please stop the trend of giving error messages that are like "OOPSIE WOOPSIE!! Uwu We made a fucky wucky!! A wittle fucko boingo! The code monkeys at our headquarters are working VEWY HAWD to fix this!" And just give me a fucking error code so I can try and fix it"

Tweet is SFW, but artist draws NSFW furries

0. https://twitter.com/cherrikissu/status/972524442600558594


I completely disagree with the tweet. Apps usually show this kind of message when the user can’t do anything to fix the problem.

If the “code monkeys” are working on it, what’s the user going to do about a crashed database or any other server-side error? If you can do something to fix the issue, the app will usually give you that information.

Of course, the app might be clearer and tell the user to retry or contact the administrator. But a generic error message usually implies server-side failure anyway.

Perhaps this person expects to receive server credentials as well?


The vast majority of the time I've run into programs and apps giving me a vague error message, you can look behind the scenes at logs and Event Manager and similar. It's almost always a dumb software dev made a dumb assumption about a specific file being in a specific place and just chose to not check the return value for errors and it dies.

If you log the API calls and debug it yourself, you will be able to find the stupidity and delete/fix/move whatever errant file is causing the issue.

So often, literally returning the raw API return value in the "Something went wrong" window would be the best information to provide.

It's laziness, it's devs thinking "Users are stupid". It's NOT hard to put a checkbox in the settings somewhere that says "show advanced error details" if you are so damn terrified of average people seeing "Scary" error messages.


I remember the first time we came across this back then and everyone losing their minds. We used to open tickets with fucky wucky all the time when we knew the ticket was gonna be exchanged within our group lmao


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?


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.


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


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


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


There's a fairly ubiquitous pattern, these days, with mega-corporations, using "folksy" or humorous, language (Slack/Salesforce comes to mind).

I think that it has its place, but, like so many cultural artifacts, needs to be done very, very carefully.

Humor and colloquialism doesn't usually translate. That's not just between languages, but also between cultures. Canadian humor may be lost on Americans, and vice-versa.

The users of a product are often of a drastically different culture from the creators. It's quite possible that "folksy" stuff from the creators, meant to be comforting and approachable, is perceived as "condescending," or "patronizing," to the end-user.

Also, error reporting is an extremely sensitive area. Often. the user is under a lot of stress, and can feel intimidated by the product (and, by extension, its creators).

Some developers may feel that "puts the user in their place," but I'd argue that may not be a desirable outcome. I like the users of my stuff to feel comfortable, and in control of their user experience.

I have noticed that there's a pervasive disrespect for users, in our industry. In some cases, it comes down to naked hatred.

I guess, if we look at the users of our products as cattle, to be fattened, sold, and slaughtered, it's inevitable.


As a non-native English speaker, this isn't a big worry for me. I apply a heavy "I have no idea what the intention was" filter. This happens equally with humour and non-humour, and the probability that something doesn't translate is about equal between humour and non-humour, I think.


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.


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


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


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


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


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


> 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


"Made with <HEART> by Faceless Corpo"


Is this the rocket emoji you are talking about?

8===D

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


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"


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.



Nearly all of the Windows UX designers are Mac-users, which explains the similarity.


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


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.


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


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.


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.


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


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


I actually from a less technical person's perspective, "cute" error messages humanize errors, showing them that there was indeed someone who made that page they are currently on and not just some soulless computer and thus making solving the problem much more approachable!

Example 1: Chrome's dino page is actually great! Grandma doesn't fear it or call me out of panic the moment she sees it. Imagine if she got something like the default Apache 500 error webpage.

Example 2: the new BSOD. I saw on some other thread that some people hate it, but I think it's clear and directs the inexperienced user to what they could at least try to do

Here I was thinking that the very same group of people that think sl is a funny command line program wouldn't appreciate humanized error messages...


> I actually from a less technical person's perspective, "cute" error messages humanize errors, showing them that there was indeed someone who made that page they are currently on and not just some soulless computer and thus making solving the problem much more approachable!

Yeah, I don't have any problem with "cute" error messages as long as they also contain all the info someone would need to identify the problem and if possible solve it. it's not the "cute" that's the problem really, it's the frustration and the lack of direction that usually comes with them.


In the python shell, `exit` is a string containing a message to the effect of "You can leave the shell by sending EOF (CTRL-D)".

I've seen HN commenters express extreme outrage over this ("They obviously know what you want to do, so why not just do it?!?!?"), but I love it. The first time I got that message, I considered it incredibly helpful, because sending EOF will work on any tool that reads from standard input, not just python. I hadn't known how to do that before the python shell taught me!


Consider that there is zero reason not to print that line, and exit anyway.


That's quite far from the truth. That's like saying that, if you read a textbook, there is zero reason to do any of the exercises.

And from the implementation perspective, the python shell is trying to run a simple loop:

1. Read a line of python code.

2. Evaluate the code.

3. Print the result.

Defining `exit` as the name of a string slots into that loop seamlessly. Defining it as a special keyword that is recognized by the shell, despite the fact that it has no special meaning to python, means you're no longer just reading python code; now you have to implement a separate parser solely for the purpose of handling this command.


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.


Man, some people will really go out of their way to take things personally and invent things to feel offended about.

Errors should certainly be as helpful and clear as possible, but no the developers are not trying to directly attack you specifically if they aren’t, or if they wrote something they thought was fun.

Yeesh, get a grip.

If I got this error message while trying to buy a train ticket, I'd be thinking "Ok, who do I talk to to get this sorted out"

I don't understand the sort of person who stops to think "How dare this error message trivialize my Very Important Problem! I feel bad now because the words on this screen are too silly!"


Big talk for a guy who's inventing something to feel superior about.

Why bother spending your time minimizing the passion someone else feels about software design?

Maybe the person who wrote the post and the scores of people who upvoted it feel this way on behalf of the countless users who get stupid error messages from carelessly designed software?

I think more people should write about the things they dislike about software. And when they do, they ought to ignore the people who ask why they're getting so annoyed about something that doesn't matter.


In all seriousness, the moment when somebody is trying to do something and getting thwarted by error messages is one of the worst possible times to try to be cute with them. You generally don't try to play cute when you can see that someone is in a bad mood, either.


Family members waiting anxiously in the hospital, the surgery is dragging on, suddenly the waiting room door opens and the surgeon leans in. Family members all turn to the surgeon expectantly.

Surgeon: " :( theatrical exaggerated frowny face Something went wrong."

Exit surgeon.


"Well, this is awkward" reads as "omg oopsie whoopsie did we make a lwittle error uwu!!! ><" which I'm not surprised is viscerally cringy.


It literally doesn't though. Maybe they are in the same direction, but there's a rather large difference in degree.

That's like saying getting a paper cut on your finger is just like having your arm chopped off. There's a pretty wide difference there.

I guess if you're the sort of person to hyperbolicly exaggerate every minor inconvenience you encounter, it's the same thing. It must be exhausting to be like that.


What I don't like are the pop-ups asking me to sign up for a mailing list where the choices are "Sign me up" and "No thanks." Don't put words in my mouth. I am most not definitely not thankful for the opportunity to be spammed.

And don't get me started on "Sign up for notifications?" where the choices are "Yes" and "Remind me later."


Yeah, except they go farther than just "no thanks".

It's more like: "do you want to sign up for our financial newsletter?"

* Yes, sign me up.

* No, I hate making money and choose to be poor.

They are hostile towards people who simply don't want to take their spam.

Who treats people like that? And is that how they treat people they interact with in person?


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.


I would also ask that the "what's changed" or "changelogs" for updates from Google (YouTube) apps, Netflix and Slack etc. are consigned to the dustbin forever and ever.

"We fixed the tubes that bring you cat videos" tells me nothing.

"We worked on great content; you work on watching it" is garbage.

"We made fonts the right size now. There you go" sort of change messages from Slack treat you like you're a 6 year old.


Would you rather the changelog just say "We don't want to actually want put anything here because our software is evergreen and any given release is just a bunch of random PRs that happened to make it before the cutoff date that isn't worth any amount of human effort both to organize on our end or read on yours but it's not allowed to be blank so here's a random cat fact."


The update messages for most of my apps are ok - except for all the apps from Google, which have the never changing text...


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.


A lot of comments here sound like they're saying these cutesy messages are what non-technical users would like to see. I don't think this is true. It reminds me of a penguinz0 video I watched awhile ago about Discord's cutesy language. I would say he's a pretty average tech user, and he makes a lot of good points here that have nothing to do with technicalities.

He uses a lot of strong language, so if that's not your thing I would advise not watching it https://youtu.be/k5FcL99NuB8 :)

Edit: And it's not about error messages specifically, but I believe these points apply to error messages as well.


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.


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.


Siri has degraded so much for me that I suspect a sarcastic response is now beyond its abilities.


The article is quite reasonable contrasted to the headline. If the headline reflected the article, it might read, "Reconsider attempting humor in error messages if the error is likely to make a stressful situation worse"

I might be the target demographic for cutesy error messages. I appreciate attempts to empathize with my pain across the gulf of the internet.

What I don't appreciate are unhelpful error messages, which seems like the main issue in the article. Like someone who keeps cracking jokes in serious or stressful situations, the devs who are both cutesy and unhelpful aren't reading the room, so to speak, applying insufficient gravity to the situation.

I'd appreciate this kind of cutesy message to the circumstance described in the article: Oops! We made an error. But do not worry! Your information is saved. Try reloading the page. If that does not work, here is our customer service number.


While we’re at it, can we do the same for loading screens?

I’d like to know my DNS is hanging rather than something completely made up, Discord.


At least they removed the atrocious "links are spoopy" line when you click a hyperlink


"App hung at 'zapping the flibber flabbers', please help"


Yes, please.

While you're at it, stop replacing "OK" buttons with cutesy replies like "Got it!", which are even worse, IMO, because they apply the cutesiness to my own reply.


Along with the buttons in the spirit of “yes please nag me again next time!”


I agree. The internet is very serious. There is no room for companies or brands to appeal to different personalities.


An error message isn't a place to be appealing to your personality. It should be simple, concise, with an ok button to acknowledge. Just like when there's a problem with my car it should say "engine issue, contact workshop", and not "motor had an ouchie, call mothership for help".


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.


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


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?


Totally agree with this.

Whilst we’re at it, cut the “maybe later” passive aggressive bullshit too.

No should mean no and not some kind of some kind of “we know best and you’ll see that with time” nannying crap.

It just comes over as ploy to rob users of control.


I have spent linear weeks looking at dialog box errors no more descriptive than:

    Error -1
These could come from anywhere.

If there had been a cute message associated with the error, I could have cracked open the binaries in question, locating the code posting the verbose error, and likely found the problem faster. At least it would have narrowed it down to one DLL out of dozens.


What I've never heard is how messages like "Oops! Something went wrong. Please try again" actually result in a better experience for anyone at all - yet UX designers seem to love them. Ok, there's no need for errors to be totally cryptic and meaningless to end-users, but the basic principle is

a) if the problem is something the user might be able to do something about, explain what they'll need to do (e.g. free up disk space)

b) if not, give the user everything they can to ensure if they need to go through a support channel or search elsewhere for info about the error they can get the help they need, i.e. at least some sort of unique message or code.

c) if it's a transient error that's not the user's fault, explain that and suggest at what point they should retry (and reassure them that nothing destructive/unwanted/irreversible has occurred or will occur on retrying).


> how messages like "Oops! Something went wrong. Please try again" actually results in a better experience for anyone at all

Didn't you just explain how?

> c) if it's a transient error that's not the user's fault, explain that and suggest at what point they should retry

Many times when I've sent this type of error but it's not actually transient was a mistake in misclassifying the error. So if the code doesn't actually know it's a or b, it's not surprising it defaults to c.


> Didn't you just explain how?

"Something went wrong" I don't consider as a message that provides a good experience. Actually I didn't even mind the example given in the original article "Token not provided in guest headers", though that very much sounds like a b) error, where it's not transient but there's nothing the user can do about it, but at least they have some sort of unique identifying message/code that can help support figure out the problem.

And sure, classifying errors can be tricky, and it absolutely requires following best-practices throughout the codebase to ensure that errors are passed around in a reasonably consistent manner where you can distinguish transient from non-transient errors, or errors where the user can take reparative actions. But the end result makes everything vastly better for the user and developers/testers etc., so is well worth the investment.


It's better for the developers because they don't have to do a) or b) which involve work. Modern software development is thick with optimizing for developer convenience and externalising the cost of that to everyone else. Better for the company because they don't have to pay to develop or test or maintain a) or b), can release the simpler product sooner and move the developers onto new features which increase income.

You're unlikely to stop being a customer because an error said "Oops! Something went wrong" instead of "Error: {fb964102-bac4-4f9e-b671-62c047cb350e}".


I don't buy that it's better for developers at all, because a significant % of the time you get such errors is because of an issue in the code that we then have to track down and fix. And it's never the developers arguing for such messages. Lazy devs might think nothing of popping up a message showing just the exception name/message or error code which I'd argue is better than just "oops...".


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: