Cut the Cutesy Errors
alexwlchan.net
alexwlchan.net
Empty states can't simply state a fact using text and maybe some sober picture to fill space: it needs to show a cute robot, dog or whatever.
Colors can't be sober either, everything has to be colorful, cheerful.
Buttons can't use text anymore, they must show cryptic icons even when there's plenty of screen space. Figuring out icons' meanings is left as an exercise to the user.
Such cutesy syndrome doesn't affect error messages only. Customer service and even replies to angry reviews got infected too.
Besides the obvious inappropriateness, what makes this especially ridiculous is the amount of wasted human resources.
This surely can be valuable to certain audiences, but I wonder what makes them think this should be the standard way of doing things. Even banking apps, supposed to be serious, conservative and stable, are falling prey to such disease. The only thing I can think of is an army of executives not having the faintest idea of what they are doing. Just blindly following trends inflated by years of cheap-VC-money-fuelled BS, and putting a bunch of kids in charge
I see emoji in docs and code and it helps. It can be abused … like any other … literary device.
To a youngster this simply means: grandma "deadass" (i.e. actually) slept through the entire movie.
To your parent: grandma died in the cinema.
Just look at the different ways a skull can be represented depending on your devices https://emojipedia.org/skull/
Notice how different they are. I prefer using kaomoji more because:
1. its way more creative, 2. its consistent across devices (way more, anyways)
this sleeping kaomoji like "(_ _ ) . . z Z" will probably be rendered in the same way for 99.99% of the people that see it throughout the text's lifetime.
>Also the incredibly annoying use of emojis everywhere turning every document into a children's book...
Halleleuhjah! --I've found a friend.I've been grumbling about and steadfastly refusing to use, emojis [and fucking TXT SPK] since forever. And I usually get downvoted into oblivion by people implying that I'm a miserable sod, or have no sense of humour. No. I'm just availing of the fact that human communication skills are supposed to have evolved beyond grunts and cave paintings.
Seriously. I've seen entire conversations on Twatter, Facebook and the like, where the whole lengthy "dialogue" has consisted of nothing more than bloody amojis and LOL, ROFL, LMAO type texting acronyms.
George Orwell had the right idea about a future where people were unable to use the language to communicate in any meaningful way. His only mistake was calling it Newspeak instead of Socialmediaspeak
BSODs didn't exactly scream "big boy pants."
https://en.wikipedia.org/wiki/Blue_screen_of_death
Extra bonus pro tip: somber vs sober
That copy makes any reasonable user more aggrieved by the situation. In some products and some situations, starting out some negative user notification "well this is awkward" might make sense, but this isn't it. It is poor design and the problem is the poorness of the design, not people trying to make software more approachable, generally. It is exactly the sort of thing a competent designer would avoid like the plague, and was almost certainly put in there by a developer or project manager trying to make it look "designed" by ham-fistedly copying elements from products who actually hire designers, and that usually precedes abject UX failure.
It's interesting, I find myself feeling this way about automated messages expressing (simulating?) emotion, too. I get that we want to "humanize" some of these interactions, but when Amazon shows me an automated message that says "We're sorry! Your package is running late" it makes me vaguely annoyed because deep down I know that there are zero human beings anywhere that are feeling the slightest bit sorry that my package is running late. As a result, it feels dishonest and disingenuous.
But "ooopsy whoops we made a fucky-wucky and failed" can really piss me off.
Honestly though, most users are not software developers and their interactions with software, both logically and emotionally, are quite different. Most of them would rather have an automated "I'm sorry" because it fits their expectations for service protocol. They also probably prefer a barista impersonally saying "Sorry, it's just going to be another minute" while making eye contact and noting your acknowledgement to their dryly saying "your coffee is late because you and other people in front of you had complicated coffee drinks" and walking away. Eveyrbody knows that the barista has no emotional stake in your coffee being two minutes late beyond it putting them in the weeds. That's not the point. It communicates "I respect you enough to acknowledge your existence and that your inconvenience is consequential" which is actually true in most cases. Outside of the tech business, few people realize the extent to which that is false at Amazon.
It’s always fun to maintain someone’s code with comments like “//todo make the magic happen” when they’ve left the company.
Not everything in life is made better by humor. It is fine to take some things seriously.
That's not really about "infantilization." Icons don't need translation (well sometimes they do, but developers don't usually care that much). So you can just fill the UI with icons and not worry about what happens when your menu bar is not wide enough for German or Japanese version of "Close current window".
Think of Ikea manuals.
* Reaching out
* Doubling down
* Beginning the answer to questions with "So..."
All have my fists bunching.
[0] https://twitter.com/cherrikissu/status/972524442600558594?la...
I always think this very thing
I still occasionally use it in vehicles without built-in navigation, but I've never registered another account with them since.
The cute error message added a sarcastically saccharine layer to the whole experience, one memorable enough that I probably would have forgotten about it now otherwise. Given that, I feel that deeply apologetic kowtowing would also come across as insincere.
A simple, matter-of-fact message would have sufficed. If an apology is desired, a simple "We're sorry, we cannot find your account" would have been less inflammatory. Still frustratingly vague, but not insulting.
INTERNAL ACCOUNT ERRROR - ACCOUNT DELETED
would piss me off less than something cutesy.
While there was a page before
Quoth the server: 404https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/410
Apologies in advance for the literal interpretation and HN pedantry.
I assumed it was common knowledge not to do that crap. I was wrong.
This (possibly) happened to Riot Games a couple years ago for their yearly predictions for the World Championship; they had some flavor text about the wildcard portion of the tournament being boring or something and people got pissed. They apologized and explained that it had been a joke from dev that made it into prod that shouldn't have ever been published, but...that shouldn't have ever been typed into the computer in the first place.
You set the convention where you were - great! I honestly prefer that too, but it's just a convention and not some kind of hard truth.
Before I was even realized as a possible future software engineer, I remember being fascinated by easter eggs.
https://www.stuff.tv/features/hatched-best-easter-eggs-tech-...
As a welp, I remember learning all about the jargon file and how important it was to sound 1337.
As disoriented, newly-hatched engineer in far-away Redmond, I remember learning about the Windows Registry and why loaded packages were called "hives" (dev was harassing a coworker with a fear of bees).
https://devblogs.microsoft.com/oldnewthing/20030808-00/?p=42...
These things are part of hacker culture. Welcome to HackerNews!
But when I tried to log in to authorise his account with my Microsoft account, I got an error
"It's not you, it's us"
Turns out I had to switch my country to the same as my child's, the error message being completely useless
[0] https://en.wikipedia.org/wiki/It%27s_not_you,_it%27s_me is still unnecessarily cute, and since "it's not you, it's me" is a common p
Just as traffic signs probably shouldn't try to be cute to a specific demographic at the expense of confusing or even worrying others, an good error message should serve two purposes. Give some type of next steps for the users, and second provide something specific enough to be useful if the user is able to contact customer support.
[1] https://www.washingtonpost.com/transportation/2023/02/13/hig...
if the signs don't rhyme
Seventeen syllable sign?
No, not enough room.
I think this trend comes in waves/cycles. Where I work, product designers are constantly switching between "ok" and other unnecessary complex sentences. The problem is that they lead to all sorts of consistency issues depending on when some dialog was implemented and by whom. Overall, it all looks like a mess.
Thankfully, we recently standardized the dialogs so you can't even have custom "ok" messages. Now it's properly localized and standardized everywhere.
I wonder if we ever get back to "Abort, Retry, Fail?"
[1] https://www.folklore.org/StoryView.py?project=Macintosh&stor...
This is Debian 11 attempting a reboot as a regular user:
$ reboot
Failed to set wall message, ignoring: Access denied
Failed to reboot system via logind: Access denied
Failed to open initctl fifo: Permission denied
Failed to talk to init daemon.
$
Compare with macOS: $ reboot
reboot: Operation not permitted
$
and OpenBSD: $ reboot
Operation not permitted
$
edit: s/meandering/ramblingMeandering errors to you are important messages to those who care enough to interpret them.
And would it not be very weird if 2/3 managed to run, sending wall messages to everyone, preventing new logins and so forth but then not rebooting? Or not preventing new logins, not sending the message but still reboot?
All of those "corner cases", including the quoted permission denied messages, could well be prevented but are not.
The consequence of having a personality is: the person you're speaking with might not like your personality.
Seems cut and dried!
I heard from a friend who was doing deep dives with the UX team that the next releases of the patient-facing apps was going to be adding that Globo-Corpo art style tiles, and even some cute animals, like ducks. That wasn't why I quit, but it's not a coincidence that I quit right around the time I found that out. Imagine dying of cancer, exhausted after a long day, waiting to answer your dosing diary for a mega-corporation while some animated ducks paddle around your screen.
My grandparents got to be adults, and live in an adult world where people were taken seriously. Why not me?
Better than the “something went wrong” message, which is just lazy and condescending. It’s basically saying “we can’t be bothered explaining because you wouldn’t understand.”
I was frustrated until I carefully read the error message.
The surprise? 404 - Successfully Submitted.
Yeah, and in this case, what language does help? Unless there's a call to action in the error message, I don't care if someone told me I broke the Internet, there's a picture of a whale, they tell me it's awkward, or if completely neutral language is used, none of that really makes me feel better about or helps me in my situation.
Of course, that's not the case, and all sorts of errors get through, but they find them and put in fixes and don't update the "way" errors are displayed.
But having cutesy error messages shows a complete lack of empathy for your users.
Better to just communicate that there was a problem, and if you need to say anything else, maybe just a short "we're sorry, but there was a problem completing your request."
Obviously more helpful information is better, but making light of your customers' stressful situation is the opposite of helpful.
It’s not the job of the software to make the user feel better or be the user's friend. It is the software's job to accomplish a task effectively or to communicate why it can’t.
Maybe some day we can have NN and LLM friends in the style of Blade Runner’s Joi - it would certainly be an interesting future to think about. Until then, software should focus on its core purpose, which is certainly not friendship with the user.
"You broke Reddit!"
Like it is my fault the site has gone down.
What makes it worse are the disturbing images of their mascot that accompany the error:
When we added it 16 years ago, people thought it was cute and funny. In fact, people loved it so much we sold t-shirts that said "I broke reddit" with one of the injured Snoos, and they sold out super quickly. This was probably due to the fact that the majority of users were engineers, many of whom also ran user facing sites, so they could empathize.
Maybe these days it makes less sense since the user base is so broad. But I'm not involved anymore and honestly it's sort of part of the brand now.
Reddit is a fun site, and can have a fun error message.
This doesn't necessarily mean to me stop having cutesy error messages all the time always, but rather think about the risk you're taking of offending your customer or audience by having cutesy error messages. If it's worth the potential of alienating them then that's your choice, but it's a real choice you're making.
An error like “An error on the server occurred” can sometimes sound serious enough that users believe they somehow caused it, even if it explicitly states it’s not their fault.
I think you can be cutesy, but clear.
Sure, it may have been better If it said "Something went wrong:-(" with a note to take a screenshot and ask for help. But if you can be cute and get the same point across, it's usually better to be cute.
Why exactly? The entire point of the article and the many comments here are about how subjective, useless and usually aggravating it is.
Lack of emojis doesn't mean PR driven corporate speak either, and in fact both are on same level of equivocal communication.
If, say, the cook in a restaurant messes up your dinner, or the mechanic happens to accidentally scratch your car, you don't want them to get cute about it, especially when you're already annoyed. Yes, mistakes happen, but then please be professional about it.
So you would rather them inform you of their mistake deadpanned without any show of emotion?
You don't like when the waitress circles the refund on your check, and writes sorry for the trouble hope you give us another chance with a smiley face? Or when the mechanic says he'll have his body guy fix the scratch before making a crass joke and offering you a donut?
Real life interactions are full of emotional cues, and personality. This is because it can often soften the blow of bad news. If you show me a picture of a puppy along with the error message I'm going to be a little less annoyed. That said, definitely show as detailed of an error message as you can along with that puppy.
I'm also on the side of being professional while the problem still stands, because the user is most probably annoyed at the situation, and wants you to take it seriously. You can be cute after the issue has been resolved.
Radiskull: From the E to the double R-O-R to the 4-0-4, what does that mean?
Devil Doll: Page not found!
I think that for low-stakes entertainment sites like that such cuteness is very much called for... but for like a business, or especially an OS, not so much. In my OS I want verbose error dumps.
"It doesn't work"
"What doesn't work?"
"I don't know."
"Is there any error message or code?"
"I don't know. It just doesn't work."
Sorry, but something went wrong. Call or text the ticket counter at blah blah to access your ticket
https://www.nbcnews.com/tech/tech-news/robocop-park-fight-ho...
Turns out the 'police' robot isn't actually able to summon police when requested. It's literally security theatre.
It used to be a much sillier place where such error messages could be flippant, but now our software has gotten more complicated and capable, so getting an error on step 7 of 31 in some complex task is infuriating whereas it used to be a fun wink for computer hobbyists.
NameError: name 'youreHosed' is not defined
Of course I have to remove those before I share my code with anybody outside of a tight circle of colleagues who know about my sense of humor.And after writing this comment I’m immediately reminded of Chevy Chase punching the moose in front of Wallyworld.
Give me the option to choose NO or NEVER you turds!
I've seen inscrutable error messages with no good way to find where they came from and nothing useful logged. This is better than bad.
I thought HN had guidelines you weren't meant to recycle stories within 12mo
If it's a 4xx error though? That's on the client, of course I'll make fun of them.
(Joking, obviously)
Oft-suggested is “human readable description instead of arbitrary error code”. Disagree; you should probably include the error code in the message (ERR0231), because that helps make the error message unique to this specific error situation and thus makes it functional as a “gathering point”. If you Google the error message and find others talking about the same error you experienced, that’s useful; if you Google the error message and find others talking about different errors on the same site, that is useless at best and could be harmful. (Concrete example: a multiplayer gaming platform reports a checksum of game files to a remote server to ensure all players are using the same version of the game. Scenario 1: The files are corrupt, the checksum is wrong, the error message is “Unable to validate game files”, the fix is to reinstall the game. Scenario 2: The user’s internet connection is temporarily degraded, the game is unable to get a response from the remote server, the error message is “Unable to validate game files”, the fix is to wait until connection improves. The unfortunate user from Scenario 2 is going to google their error message and get told to try the fix from Scenario 1. Now they’re re-downloading the game on their spotty connection.)
Something I haven’t seen suggested is telling the user what parts of the process did and didn’t happen. Take the case described in the article.
“We were unable to charge your card. The system has not created a ticket. The app has no ticket to generate.” (Something is wrong with my card, I can check my bank balance and try the purchase again.)
vs
“Your card has been charged. The system failed to create a valid ticket to be associated with your account. The app has no ticket to generate.” (Something is wrong with their server, I should not try to purchase again.)
vs
“Your card has been charged. The system has created a valid ticket but failed to associate it with your account. The app has no ticket to generate.” (Something might be wrong with my account, or something is wrong with their server. I can check my account page to see if there’s anything I need to update, but if I don’t see anything then I shouldn’t try the purchase again.)
vs
“Your card has been charged. A valid ticket has been created in our system and associated with your account. The app failed to generate this ticket.” (Something is wrong with the app on my phone. I should not try the purchase process again but I could try re-downloading the app and going to My Tickets.)
The user by default has a mental model of the state of the world after a successful process, and you need to inform them which parts of their mental model need updating because of this error.
(1) Third sentence seems redundant. It adds no useful information, unless maybe you're privy to internal workings of the system (and maybe not even then).
(1,2,3,4) If "the system" creates tickets, why is the app trying to generate them? 'Generate' and 'create' are too close in meaning, for me.
(1,2,3) Why am I charged if the charge+ticket (which should be inexorably linked) did not succeed as a whole? I'd expect the charge automagically reversed (or better: prevented) as a consequence of rolling back the broken transaction.
(3) If a 'valid' ticket was created, how is it not associated with my account? That seems like an invalid ticket to me!
(4) Seems like the entire transaction (charge+ticket) completed, but mysteriously the app is informing me it doesn't need to or possibly has failed to do…who knows what, be cause 'the system' already has my ticket.
The first scenario is the only one for which I agree with the suggested conclusions.
There are no shortage of people old enough here to remember the default PHP settings dumping out far more error details than needed to potential attackers. Most systems these days print out something like "Bad error happened: $ID", where you the end user still have no idea what $ID means.
Also, it looks like you're browsing on an iPhone... what do you want, a full javascript stack dump? If you got an error message like 'bearer token not passed from intermediate processing system' what exactly are you going to do with that anyway? Retry the transaction?, try a different browser?, uninstall/reinstall the app? Most of the time these just cover up something you can't do much/anything about anyway.
The problem is that the developers use these messages for debugging their own problems. If that’s necessary, include a unique error ID in the message also, but that’s much less important than telling the user what to do next.
1) That an error occurred
2) Whether it's the user's fault or not (hopefully not)
3) What the consequences of the error are (did the transaction go through?)
4) What further action the user can take (reload and try again, stop putting emojis in our text box, whatever)
5) How/If it's appropriate to contact you about the error
6) Some cordial condolences.
For example: A network error occurred during checkout. The transaction may have gone through regardless, please check your purchase history before trying again. If this continues happening, please email xxx@xxx.xxx with the following error ID: 123456789. We're sorry for the inconvenience.