11 ms·
Should error messages apologize? (2013)
- 000ooo000 3y agoYeesh, maybe this is why software grates on me so much these days. I know it's not human, and I don't want it to pretend it is.
- bigstrat2003 3y agoSame. Spare me the fake displays of emotion, they're just annoying. For example, the Windows BSOD with its giant frowny face. I hate stuff like that.
- Tempest1981 3y agoMaybe some ASCII art? https://stackoverflow.com/questions/68129684/what-does-this-human-drawing-returned-by-git-in-terminal-mean https://stackoverflow.com/questions/68129684/what-does-this-...
- ChrisArchitect 3y ago(2013)
- milgrim 3y agoAt least they should not accuse the user. “You broke Reddit” Come on, I don’t think so!
- quickthrower2 3y agoThat is not an accusation, it is a bragging right.
- ivalm 3y agoHonestly I always loved this, never failed to bring a smile to my face.
- cqqxo4zV46cp 3y agoThere’s only one person that broke reddit, and it was Kimmy K.
- PhyllisEngine 3y agoI feel like the severity of the error warrants different responses. The more critical the error, the more apologetic? Seems like unnecessary bloat in most cases.
- 082349872349872 3y agoGiven the reference to "your administrator" the user-facing sorry seems fine. IMNSHO, dev-facing error messages bifurcate: - errors for unsuitable input should not be apologetic: "inconsistent def'ns at foo:42 and bar:69" - errors for implementation limitations may be apologetic: "sorry, at foo:42 node bar has 69 attributes; this implementation supports at most 63"
- kragen 3y agoit depends in large part on who you impute the speaker of the error message to be, and who the listener if i say to you 'i'm sorry my email was so long' that question doesn't arise; you know who the speaker is and who the intended listener is. similarly, if your browser says to you 'i'm sorry my email was so long', as it is doing as you read this, hopefully the surrounding context contains enough information to identify the purported speaker and intended listener. (i'm sorry my email was so long!) it is 'quoted speech', as when lisa says, 'and tanya was all, "i'm sooo drunk right now! oh my god, i'm like sooo sorrryyy!" and we laughed'; lisa is not apologizing, tanya is. but what agent does a running computer program represent? or, on whose behalf are its error mesages speaking? — ⁂ — in the case of, for example, a built-in macos program, this is clear: it represents apple, the corporation, a fictitious collective identity like the dread pirate roberts, anonymous, or bourbaki. in exchange for your money, apple is providing you a service by allowing you to run that software on the computer you nominally bought. the computer program, written or at least patched together by apple programmers, speaks with apple's voice therefore, if apple cannot fulfill your request, it would be polite for apple to express regret, in the program's error message, for letting your hopes down. perhaps it could include a link to the web site where you can purchase the permission to use 'your' computer to think the thoughts you are not currently licensed to think in it. this applies generally to proprietary software that you are not allowed to fix, as vanderZwan suggests. (even if you can figure out how to fix it, apple is responsible for making that unnecessarily difficult by, for example, not supplying you source code and checking executable signatures.) — ⁂ — traditionally, though, on conventional timesharing operating systems like unix, the programs are considered to be an extension of the user's mind, as a bicycle is an extension of their body, and thus they represent the user's agency; they carry out the user's own will, not the will of their programmers. a program that carries out the will of its programmer, where it conflicts with the will of its user, is considered a 'trojan horse' or 'malicious', with narrow exceptions; and strong social sanctions are attached to distributing such programs. the protection mechanisms in the operating system simply assume they don't exist so, in that social context, if a program is speaking to you, it is speaking to you on your own behalf, like a note you have left yourself in your day planner. perhaps tex does not have enough string space to interpret a given document, because you compiled it to have less string space than that, or perhaps you chose to use a copy of tex a colleague of yours compiled, to save the time and disk quota of compiling it yourself. that is no different from your example of contradictory declarations in the input; all that is needed is pointers to the mutually inconsistent limits (ran out of string space at bar.tex line 5329, string space size is defined in foo.web line 30213, compiled on 01994-10-31 from the source tree in /u3/schaker/new-tex) should cannondale apologize to you when you fall off your bicycle, or arrive late to a meeting, or ride into a slum and get mugged? if you open the kitchen cabinet to get the table salt, and find that you have left it in the dining room, will you apologize to yourself? when you reserve time in your day planner for a meeting you expect to be unpleasant, does the calendar entry begin with "i'm sorry"? should don knuth apologize for not making the string size allocation larger? surely not. even schaker probably should not; if you want a larger string size allocation, you can recompile tex yourself almost as easily as schaker can but it depends on the social context. perhaps if schaker is responsible for maintaining the tex installation all the math professors use, the error message should include his email address so they can request a dilation of their tex — ⁂ — in general, in free software† the app's programmers are not responsible for its behavior, unless they have somehow contrived to conceal it. you, the user, are fully empowered to modify the app to manifest your own agency, and responsible for doing so. so the traditional timesharing situation holds a precondition for a sincere apology is accepting responsibility for the situation being apologized for—which implies that the intended recipient of the apology does not have that responsibility. in free software, a maximally uncharitable interpretation of an error message (other than for an internal bug) saying 'i apologize for' (or, worse, 'we apologize for') is a red flag that the developer is a renegade who rejects this social contract; they are attempting to arrogate the right to determine what you may and may not do with your computer, by virtue of having written some of the software you are trying to use to do it. like ayn rand, they consider themself an atlas on whose shoulders the mere user is generously permitted to ride, as long as they do not shrug. they consider 'trojan horses' to be normal software. this is not a collegial or collaborative relationship but that is a maximally uncharitable interpretation. perhaps the programmer is apologizing because they felt that they left a job half done, or they would have liked to find a smoother way to handle a different situation, and just couldn't figure one out. or perhaps the "sorry" is not really an apology, accepting responsibility, but merely an expression of sympathy for the users who find themselves in an unfortunate situation, without respect to whose responsibility it is but, with respect to error message design, it is an immense blunder to generalize from the social context of proprietary software like xcode to the social context of free software like gcc of course, in some situations, free software on a shared computer is instead an instrument of some office administrator or similar, who is the agent responsible for the unfortunate situation that might merit an apology. in that case the desk phone number and email address of that administrator ought to be included in the error message, in the interest of solving the problem as expeditiously as possible if it is urgent to the user — ⁂ — while it can be amusing for computer programs to present us a theater in which various personages portray different personalities—some servile, some compassionate, some aggressive—artistically that can be done well or poorly, and it is important for the user to understand that these personages are fictional, and that a conventional computer program is merely an instrument, not an agent different users' tastes in such theater may vary; judging from popular novels, movies, tv shows, video games, and rap music, most prefer fiction containing passionate, aggressive personages who struggle to the death. portraying such personages in error messages would surely be entertaining (japanese video games often do this, launching insults at the player character when the player suffers a misfortune they could have avoided) but it might occasionally cause difficulties when a user appears who does not understand that the program is not itself an agent, and anyway if done without artistic skill it will not be entertaining at all on the other hand, the stackexchange thread seems to recommend always portraying agents in error messages and always making them servile. this compounds that risk rather than ameliorating it: it is commonly done without enough artistic skill to render it entertaining; it adds the extra challenge of making a servile personage sympathetic rather than merely irritating; and the motivation given in the stackexchange thread insults the user by the unspoken implication that they are unable to distinguish the fictional personage portrayed in a computer program from a real sentient agent—an implication that may not be apparent from a single error message, but which will surely become evident over time unless the user is very small or socially handicapped ______ † perhaps we should rename free software 'nontoxic software', given that the movement to rename it 'open source' has not been as successful as was hoped, and 'free software' was always unavoidably a very confusing term
- shp0ngle 3y agoJust write "Abort, Retry, Fail?" and call it a day It worked for Microsoft, it will work for you
- system2 3y agoIMHO, super users are annoyed by the humanized responses. I don't want to see the error almost teasing me after I tried to accomplish something. Feels condescending. Especially the ones that start with Oops, Oh No etc.
- teddyh 3y ago“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” — <https://twitter.com/cherrikissu/status/972524442600558594?lang=en https://twitter.com/cherrikissu/status/972524442600558594?la...>
- NL807 3y agoI don't think users should be mollycoddled either, because that would be patronising more advanced users. It's just a matter of not making them sound too terse and abrasive. Better still, have a failure condition that is symbolic in some way, or enforces certain intuitive interaction via the UI, instead of pushing error messages in people's faces. A good example of this, typing the wrong password in the macOS login shakes the password field, rather than displaying "INCORRECT PASSWORD!". That sort of thing.
- Neil44 3y agoI think the sorry helps the user to understand that something is wrong and it's not some normal part of a flow that they just don't understand.
- layer8 3y agoThat’s what error icons are for.
- gary_0 3y agoI really wish it didn't need to be asked. Be polite, professional, respectful, succinct, and for the love of god don't try to be cute. Is that so hard?
- JohnKemeny 3y agoWere you just trying to be cute? ;)
- Pannoniae 3y agoI'd unironically take cute interfaces over many of the ones out there...
- PinkSheep 3y agoMaybe we need a CoC for error messages.
- sschueller 3y agoJust give me a clear and concise error message so I know where to look for a fix.
- noirscape 3y agoHonestly, no. An error message shouldn't apologize. A good error message has the following conditions: * Concise. ("You need to enter a number in this field, not text" = Good, "we're very sorry but we can't understand it if you write your age in text" = Bad). * Clearly telling the user what went wrong without relying on technical jargon. The line number where something went wrong doesn't need to be in an error message; it's not something the user can do much with - keep that in the crash dump. The DLL name you're missing probably should be if it's from a runtime. * Providing a means on where to find a more detailed error message/who to call to fix it if the user can't fix it themselves, with the right information to supply that person. ("Please call your administrator for help and use code ERR_CRAPSHOOT (128)" is good, "We're very sorry" with a ton of warranty warnings and a way too vague error code that can indicate a ton of similar errors is bad.) * Avoid the notion of just reporting everything to some backend endpoint and giving the users no indications of what went wrong; this is only frustrating to the user, no matter how many apologies you put in the message. It's an answer that amounts to "your message is very important to us, please hold the line".
- Stratoscope 3y ago> "You need to enter a number in this field, not text" = Good No. Never tell me what I "need to" do. There are any number of ways to get this message across without telling me what I need to do. One example off the top of my head, probably not the best, but certainly an improvement because it doesn't blame me: > This field only accepts numbers For bonus points, put that message next to the field modelessly at the moment I type a non-numeric character.
- Angostura 3y agoFor even more bonus points, avoid talking about large grassy areas. Many users will have no clue what a field is.
- PinkSheep 3y ago> Never tell me what I "need to" do. Do you imply ill intent upon the program? Because I read this as a violation of tone. I interact with the program because I want/need to. It's in my interest to follow through the *instructions* to interact with it correctly and efficiently. I can follow instructions and view it as a helpful hint. How about entering, say, a printer configuration. These fields accept only SSIDs, IP addresses etc?
- dataflow 3y agoI actually find these to be irritating if not kind of offensive. (Like the "we are experiencing larger than normal call volume" that literally always plays.) Who exactly is sorry here? The computer? It doesn't (yet?) have feelings. The engineers? They're not telepathic, they have no idea anything just happened to you, let alone feel sorry for it. It seems to be at best a random guess as to how some group of people is feeling, and at worst a lie.
- Angostura 3y agoClearly the engineers do know that something happened to the user- they are thinking about the circumstances that would have triggered the error message as they wrote the message
- dataflow 3y agoThey don't know something happened. They only know that if something were to happen, then this message should pop up. That's not the same thing. People don't get feelings for events that they're not aware of having ever happened. (Also, chances are good the people who authored the message aren't even the same ones currently at the company by the time you see them. Which ones would the message even apply to?)
- cqqxo4zV46cp 3y agoIt’s pretty safe to assume that people find being on hold a neutral to negative experience. Not a whole lot of guesswork there.
- dataflow 3y agoI'm talking about the authors' feelings (who are purportedly feeling sorry), not the users'. Do I feel sorry that my user didn't have access to some file? Not really? Maybe it was the right thing? If they were malicious I would feel glad. If not, I have no idea what to feel, it depends on the context.
- bhawks 3y agoNever met an app that could actually feel sorry (maybe someday?). This type of behaviour just feels artificial and inauthentic in most products. If your making an error message effort I'd focus first on being clear, concise and actionable. Try to establish some expectations for the user so they know how and when things will be resolved, ensure you're monitoring and alerting is appropriate to hold yourself accountable to those expectations. If you really need to apologize, a human should do it.
- firtoz 3y agoIntroducing our latest apology boss feature. Every time an error happens, you get a popup with an AI version of our boss bowing down in shame.
- vanderZwan 3y agoThe app didn't write the error message, the people implementing the app did. Any error message is just as much a form of communication between them and me as it is between the app and me.
- jxf 3y agoBut we can't identify which human wrote the message. There's a huge difference between a push notification that says: > Flight UA569 has been canceled. We apologize for the inconvenience and we will rebook you on the next available flight. and one that says: > Flight UA569 has been canceled. I apologize for the inconvenience and I will rebook you on the next available flight. — Alice
- vanderZwan 3y agoI'm not sure what you are trying to say. Yes, there is a difference in the two examples you gave, although it would have been nice if you had been more specific about what you meant. What I notice is that the first option the apology comes from the company and the people in it, and intended to imply they see it as their responsibility to fix things. The second would imply that Alice is personally to blame for the cancellation and taking responsibility. Either are technically possible, although the latter seems very unlikely to ever happen. What I fail to see is what this has to do with the error messages. The example given was "Sorry, you do not have permission to access this feature. Please contact your administrator for assistance", which falls under the first form. This seems appropriate for a message representing a team of people who wrote the program, as well as the administrator. It also is quite representative of the apology style seen in such messages.
- bjackman 3y agoI think prefixing with "sorry," is a good idea but I really hate cutesy error messages. I feel the Chrome dinosaur kicked those off, and I do (did?) like the dino. But "it's not you, it's us" is very annoying. "We made a booboo UwU". When something has gone wrong I really don't want to feel I'm being marketed to, I just want information!
- EvanAnderson 3y agoA thousand times this. Cutesy error messages make me feel like the developer doesn't take my use of the product seriously. It's wildly unprofessional.
- Stratoscope 3y agoOne of the worst - I don't know if it's still there - was a Gmail message something like "Hooray! Your inbox is empty." Well that's great if you worship Inbox Zero. But what about me? Maybe I'm anxiously waiting for news on a family member's illness and hospitalization. Maybe I'm waiting for my lawyer to get back to me on an important case. It's not hard to imagine any number of circumstances where I would not say "hooray!" when I see my inbox is empty.
- agos 3y agohooray! your sysadmin botched the migration and your mail is all gone!
- flatcakes 3y agoSame with slack when it congratulates you for catching up on messages. Each app/service assumes you are able to take the afternoon off if you happen to have 0 widgets in your widget list.
- arccy 3y agoit congratulates you for not having a pile of unknowns, not that you have nothing to do
- 3y ago
- shellac 3y ago> it would be more appropriate to "apologize" for something that would be considered solely the "fault" of the application Is this in part a US vs English difference? I used to work with somebody from Texas who was confused and irritated by the english use of 'sorry' for things they weren't responsible for. In english I suppose we use it out of politeness to express some sympathy, rather than necessarily as an apology.
- iforgotpassword 3y agoYou mean as in "I'm sorry your train got cancelled" - "wait... you did that!?" I'm not a native speaker but I feel like Americans would say that too.
- BobbyTables2 3y agoCorrect, except the “train” part. We don’t have those here!
- kragen 3y agothe ambiguity exists in us english as well as english english, but i feel that in us english the implied acceptance of responsibility in 'i'm sorry' is somewhat stronger
- acatnamedjoe 3y agoAs an English person my first instinct is to add "sorry" to virtually any user-facing text!
- quickthrower2 3y ago“Sorry, you have a match!”
- light_hue_1 3y agoAs a Canadian you're spot on! Sorry to drop by like this.
- dns_snek 3y ago
- user3939382 3y agoWe should insult the user. “Your edits did not persist due to an unknown network error. Fuck you!”
- rapnie 3y agoThat's rude. Outrage suffices: "I should've known. You just had to click on our error, had you! Alright, take the error code and leave."
- LAC-Tech 3y agoDamn it I laughed out loud at that and I hope my toddler is still asleep. That was all in the snappiness of the wording, great little joke.
- CM30 3y agoSo like this joke error message from a certain 00s game? "APPLICATION ERROR. SAVE YOUR WORK AND QUIT. YOU LOST EVERYTHING. WAY TO GO, GENIUS."
- probably_wrong 3y agoI think a true apology should include, among other things, a plan on how you are planning on ensuring that the thing you're apologizing for doesn't happen again. So my rule would be: if you're not planning on ensuring that this doesn't happen again (either because the system is working as intended or because you have no plans on fixing the issue) then any apologize will sound insincere (because it is). When is an apology okay: "The site is down temporarily. We are working to bring it back online. Sorry for the inconvenience" When is an apology empty: "Your train has been canceled. We apologize for the inconvenience", more so when you hear the exact same message thrice a week.
- throw310822 3y agoHowever I would say that "Sorry, you do not have permission to access this feature. Please contact your administrator for assistance." Is not an error message, in the sense that it is not displaying an error state of the application. It is informing the user that some feature they have somehow reached (maybe through a link sent by someone else?) is not available to them. The apologetical tone is not for a mistake that was made (there was no mistake made by the application in this case) but for the action of preventing them from accessing something that is available to others.
- rollcat 3y agoI think an appropriate apology should address the overall situation, not a particular event. Say you're loading some data over the network, and it's taking unusually long. You decide to display a message, "sorry that it's taking so long". But what if the user is not even in front of their computer? The intent and effort behind the apology seems wasted. What if the user was on a fast, but metered connection, and the data loaded very quickly, but wasted half of their monthly data package? How do you intend to apologize if you didn't even bother to call the OS or ask the user if it's OK to start a huge download? I feel like blanket apologizing in any, except the most clear-cut scenarios, is going to feel excessive in one way or another. If you're just writing an error message, focus your attention on making it more informative instead.
- 8organicbits 3y agoI suspect there are cultural preferences here, there's no reason to believe there's one correct answer for all of humanity. I'm from the US but I've traveled to places where it's considered rude to say "no" directly and apologies aren't common. Like when trying to order an unavailable item from a menu: - I'd like the beef burger - The chicken burger is very good - That's OK, can I have the beef burger? - Our hot dogs are also very good I'd guess that text like "Access denied" or "You don't have access" would feel too direct and may come off as rude in that context. A "sorry" would feel out of place. Perhaps "This page is access restricted" would be best, as it alludes to the user not having access without directly saying it. Conversely, I much prefer quick and direct communication with or without the apology: "[Sorry,] we don't have the beef burger." I'd love to hear opinions of non-US and non-Westerners on this. We're in a thought bubble otherwise.
- robertlagrant 3y ago> We're in a thought bubble otherwise "HN commenter" is already a much tighter bubble than "the West".
- AlecSchueler 3y agoAnd don't forget we're mostly getting men's views here too.
- kragen 3y agosmaller, but definitely not a subset‚ and especially not a subset of the usa
- NiteOwl066 3y agoOut of interest what places are those?
- arrowsmith 3y agoI haven't been there myself, but I've heard that this style of communication is very common in Japan.
- LAC-Tech 3y agoNo. I'm tired of machines trying to be friendly and cute with me. Be short, curt, and polite. Like a Star Trek original series computer. We're not friends, and you're not my equal, you're a damn program. Act like it.
- hooby 3y agoI think, error messages should put way more focus on what can be done to make it work - rather than on what went wrong. The user wants to achieve something, and the general job of the software is to help the user achieve their goal. If the goal of the user is to book a flight - then the software throwing an error about the request form not being filled out correctly, basically constitutes a bureaucratic hurdle. "You will not be allowed to book your flight, unless you ask for it in exactly the right way!" Sadly, software often has to be bureaucratic about it's input - but that's not actually helpful to the user. So you could argue, when the software rejects the users request because of not meeting bureaucratic demands - the software is failing it's primary job: to help the user. A perfect software would not have to show an error message ever - because it would be so good at guiding the user, that everyone would intuitively know how to do it correctly. But "Perfect" does not exist. So any software will at some point inevitably fail to guide the user to their desired outcome and be forced to display an error message. There's nothing inherently wrong with being apologetic in tone for failing to guide the user and putting such bureaucratic stumbling blocks in their way. But the error message should be focused on helping the user. On making things work. It should not be condescending nor assigning blame. It should also be short and concise, and respect the user's time. And that means that there's no space for polite verbiage and apologetic phrases. So, apologetic tone is fine, if it can be done without increasing the length of the message.
- sigwinch28 3y agoI try to do this when writing error messages I expect to be seen by other engineers. I also try to state why this is an error condition. “ERROR: Database query returned 0 rows” versus “ERROR: Database query returned 0 rows but need 2 or more rows for this operation. Ensure $other_etl has successfully ingested the data.”
- funcDropShadow 3y ago> If the goal of the user is to book a flight - then the software throwing an error about the request form not being filled out correctly, basically constitutes a bureaucratic hurdle. > "You will not be allowed to book your flight, unless you ask for it in exactly the right way!" > Sadly, software often has to be bureaucratic about it's input - but that's not actually helpful to the user. So you could argue, when the software rejects the users request because of not meeting bureaucratic demands - the software is failing it's primary job: to help the user. The booking software could provide a link that preserves the user entered from fields and creates a new session on this booking platform. That way it would reduce the friction created by the error. That is way more helpful than an apologetically phrased error message.
- dwb 3y agoA proper apology, to me, is the admission of a fault that the apologiser is able to, and will, rectify next time. Therefore most error-message-apologies sound very insincere to me. I prefer computers to stay curt, true to their nature.
- bhawks 3y ago| Sorry, you do not have permission to access this feature. Please contact your administrator for assistance. What is the feature? What permission do I need? Who is my administrator? How do I contact them? These are the more important points to assist the user with then adding a "sorry". I'd argue that this should be a button with 'request read access to FooViz from your administrator' that facilitates the corrective action on the users behalf. Similar to clicking on a Google docs link that you don't have access to.
- floppiplopp 3y agoI've been working in what might be called "UX" for some time, although mostly in technical and scientific environments, which are quite different compared to the garden variety consumer applications designed for retention and profit, and I wouldn't want to be thrown into the same pot as the usability crowd with their 90% business of self important shit that's just useless dribble for the incompetent middle management caste. The whole UX specialty can be summarized perfectly by the linked uxmag.com article which disqualifies itself automatically by having the most annoying, anti-usability "AI" bullshit modal over the article that's pathetically begging for the attention of gullible morons - of which there are plenty in UX, of course. It's a bullshit-job profession, and it shows. In reality you can boil down most questions of usability to using simple heuristics: Who are you dealing with and what's the useful interaction in this context? E.g. the useful interaction with UX people in any context is to let them know how little worth their professions actually has.
- TrianguloY 3y agoWhat about "It seems you do not have permission" or "It appears ...". Other option is "Unfortunately you do not..." They are like in the middle between formal and informal, or maybe I feel that way because in not native English.
- WesolyKubeczek 3y ago"It seems"? So there's a possibility the program may be wrong and just imagined the error?
- TrianguloY 3y agoMaybe it's because I'm not native, but for me "it seems" doesn't convey any possibility. It states a fact, something that happened, but with some sort of "surprise" tone, like "we didn't expect it, but you don't have permission". A quick internet search tells me that "it seems" can be used in many context with many slightly different interpretations, so _it seems_ that it's not a good option after all.
- peteradio 3y agoI always amused myself daydreaming of writing code that would catch errors then insult the user and finally revoking their account.
- vdaea 3y agoThank the Lord in the Spanish translations of software they drop the "sorries" and the "pleases". That much amount of grovelling must be some American thing I reckon. Unfortunately some American companies are starting to cheapen out on translations by having them made in Mexico even for software used in Spain so the sorries and the pleases and some other spanglish terms are coming here.
- dartos 3y agoI wouldn’t be surprised if the people contracting Mexican translators for software released in Spain dont know that Spanish dialects differ a fair bit.
- mablopoule 3y agoOne of the funniest example of that is the Resident Evil 4 game, which was supposedly set in Spain, but had villagers spoke in Mexican Spanish.
- PinkSheep 3y agoSimilarly, Russian translations are often translating such phrases verbatim. I have come to the realization that the correct translation would be to drop the "pleases" and instead use the respectful 2nd person plural "Вы" (same as "Sie" in German) as it would be sufficient.
- rogual 3y agoI don't even like "We" in UI messages. "We couldn't find that site." "We're just updating your computer." Perhaps I'm just an old fogey, but passive voice feels like the only right choice: "The site could not be found." "Your computer is being updated." The insertion of "We" feels like an imposition; the company who wrote the code reaching in and enacting their will with your equipment, using your screen as their soapbox. It's icky. And without "we", there can of course be no "we apologize".
- HPsquared 3y agoIt can be worrying too, those Windows updates where you have a blank screen with something like "We're getting your files". Could be interpreted the wrong way...
- melagonster 3y agoat least they don't hide their purpose. current software is service.
- TeMPOraL 3y agoThey literally said that Windows is a service on one of the Windows 10 splash screens during installation/update.
- bitwize 3y agoYeah. One of their mandatory update dialogs. "Windows is a service, and updates help us provide that service smoothly, so if you could reboot for updates, say, now, that would be terrific." Not an exact quote but it captures the spirit.
- bitwize 3y agoActual dialog here: https://answers.microsoft.com/en-us/windows/forum/all/weve-got-an-update-for-you-can-click-anything-cant/138de1c8-1c41-4fa5-b671-2ebdf6010cb9 https://answers.microsoft.com/en-us/windows/forum/all/weve-g... Love the proposed solution. And yet Linux will never be ready for the desktop because you need the command line to fix problems...
- rkagerer 3y agoNo, developers should.
- duckman1 3y agoImagine feeling hurt because a machine said something lmfao No wonder the world is falling apart.
- verisimi 3y agoAnthropomorphising machines is a thing! I don't know why we do it frankly - when there are real humans one can talk to, rather than pretending one is having a meaningful exchange with a website or advert.
- bradgessler 3y agoNo, error messages should tell the user what they need to do to accomplish their goal as concisely as possible.
- barrkel 3y agoActionable error messages are a lot more work and are not always feasible. A library discovering a mismatch between a configuration setting and a value it received by API isn't in a position to make a decision on which is wrong: is it misconfigured, or is the value it received via API under the control of the user? The caller of the API isn't necessarily in a better place to make a decision. The higher up the stack you go, the more context you have on the action the user is trying to perform but the number of potential errors increases exponentially. It's usually not feasible to contextualize every possible error condition, particularly for things like configuration which are side-loaded while executing code and are a library implementation detail from the perspective of the application writer. Consider access denied to a file: is this a user mistake or a permission mistake? Should the user change the file permissions, or not try to access that file? Consider quota exceeded while writing to a file: should the user free up space, create a smaller file, or ask their administrator to give them more space? What if the quota was exceeded due to a configuration setting in the application specifying where to put scratch files? It gets very complicated very quickly, and even the simplest of actions - like writing a byte out to a file - have errors that require global knowledge to give good actionable feedback on.
- estebank 3y agoIt's true that providing good actionable errors with useful context is hard and sometimes requires global knowledge. It still should be attempted. I see that if a project doesn't aim for that objective, then errors are the first thing to degrade and stay bad indefinitely. If even a modicum of effort is put to improve them, the project attracts users and contributors that appreciate them and try to improve them or at least hold the bar where it is. So, yes, it's an uphil battle, but one that needs to be fought. I keep looking around at well established projects that don't even try, and as a user they are incredibly frustrating, because improving the status quo wouldn't require introducing global analysis, it might be as simple as adding an extra sentence with some internal state, a description with a few keywords to Google for, or a link to the docs. I'm well aware of the effort needed to have great error messages. I'd be happy if the average error message was passable, instead of terrible. Part of the problem (in open source) is that developers write tools for themselves first, so they are intimately knowledgeable about the internal state of the application, so they provide enough context for themselves. So little more is given unless enough people complain and the original developer agrees to change. In that ecosystem we constantly interact with tools written like that, so that's "the bar" we're used to. All our tools end up taking the approach of "The user did something stupid, I don't know", so that's what we do in our tools. And I completely reject that framing. I take the approach of "The user did something that didn't met the applications, sometimes implicit, preconditions." and take if from there. Maybe what they did was wrong due to a misunderstanding caused by bad docs, maybe the user did something wrong because we're missing a feature implied by the rest of the features, maybe the user hasn't done a necessary configuration step. All of those things can be checked for! I can't think of any tool that isn't necessarily an error reporting tool. But few projects takes that into consideration and approaches it as "this is an error reporting tool first, and the actual thing it does is secondary". If the user cannot accomplish their task, it doesn't matter if it is the fastest tool in the West. "Syntax error on line 1" is very different to "missing WHERE condition after AND on line 1 column 45". A lot of the examples you have have alternative courses of action. Great, enumerate them in order of likelihood. Don't even claim to be right, just throw your users a bone. If you're right with any of them, you just saved them time and anguish. If you're wrong in all cases you mention, then you have a bug in your output. You can even get away with "these two things might be happening, but there might be other problems, can't help you more if so". "IO error", "couldn't to disk", "couldn't write to file", "couldn't write to file '/tmp/foo-bar'", "couldn't write to document metadata file '/tmp/foo-bar' because the file already exists and their permissions dont permit this user to write to it; you can change the path with '--metadata-path=/path/to/file" are all the same error, but I'd much rather get the last one, over the first one.
- 1970-01-01 3y agoI once tried to link error messages directly to the offending line in their open source code, such that it would be clear to everyone what is broken. It never worked correctly, and I stopped trying. If anyone can create an elegant way to do that, it would be a game changer for open source.
- jasomill 3y agoLike a stack trace? jtm@socrates ~ $ dotnet new -o foo console >/dev/null 2>&1 && cd foo && cat > Program.cs && dotnet build >/dev/null 2>&1 && dotnet run String? bar = null; bar.GetHashCode(); ^D Unhandled exception. System.NullReferenceException: Object reference not set to an instance of an object. at Program.<Main>$(String[] args) in /Users/jtm/foo/Program.cs:line 2 While not novel, I agree that always including stack traces with error messages, hidden behind a disclosure widget or in a log file to avoid overwhelming non-programmers, is extremely helpful in troubleshooting when source is available.
- 1970-01-01 3y agoI tried linking errors to their offending line in GitHub repos, including a diff of local and newest version. Perhaps with some good AI, it could work and be a novel way of fixing open source errors.
- cjfd 3y agoWhat about doing whatever you like and/or seems most useful? I am getting a bit sick and tired of either people asking what they 'should' do or people telling others what they 'should' do. The former because they seem to want to outsource that which their brain should be able to do and the latter because they are disgusting dictators. Can anyone still think for themselves and/or allow others to use their brain for its obvious purpose?
- deleted 3y ago[deleted]
- huqedato 3y agoWhy the system should apologize for you being stupid ? This makes no sense to me. The error should be concise, assertive, objective.
- 5cott0 3y agoError messages should make the user apologize.
- ooterness 3y agoSyntax error on line 42. Enter a 50-word apology to continue compilation: _
- planede 3y agoThe only GCC error that apologizes (that I know of): https://godbolt.org/z/GMxz5c339 https://godbolt.org/z/GMxz5c339 "sorry, unimplemented". It really felt out-of-place when I first encountered it, but I think it messages intent a bit more than a simple "unimplemented" error message. It at least suggests that this is a shortcoming of the current implementation, so it might get implemented in a later version. Having said that clang also doesn't implement this, and the error message doesn't apologize: "error: cannot compile this lambda conversion to variadic function yet"
- 01HNNWZ0MV43FF 3y agoRust's `todo!` macro actually standardizes this as "Not yet implemented" https://doc.rust-lang.org/src/core/macros/mod.rs.html#871 https://doc.rust-lang.org/src/core/macros/mod.rs.html#871
- kinj28 3y agoCompletely tangent here but back in 2005 one of the early programs me and my cofounder wrote included a try catch which spitted out something like variable not found. We were just out of college and didn’t really pay much heed to the possibility of our code ever getting into the catch. And one of us had the variable christened as “baby”. Code went into production and one of user got the error message “baby not found”. Well thankfully our end user who found the error message found it funny and cheered him up. So we go either helpful or quirky on error messages most often and apologetic if the situation demands it.
- lainga 3y agoReminds me of the panicked woman who hit F12 while on FB, saw the log message "forcing children into a div", and concluded she had discovered evidence of child abuse. I believe this was before FB printed the big ASCII art "STOP!" message to console.
- Macha 3y agoBack when we first got a computer, my mother was highly concerned by the Windows 9x error message "Your computer has performed an illegal operation and must shut down"
- Sohcahtoa82 3y agoAlways gotta wonder what genius thought it'd be a good idea to have "illegal operation" in an error message displayed to users. Then again, that was nearly 30 years ago. Maybe we didn't have as many studies on users back then.
- layer8 3y agoAnecdotally, I’ve never seen an apology in the error messages telling you that your new password doesn’t include the right number or kinds of characters. Edit: And actually I think this is a case that illustrates why error messages shouldn’t apologize. It would only make them less concise and beside the point.
- scotty79 3y agoI don't care about apologies but error messages should carry actual information. When user get "Sorry! Something went wrong." he has no handle to complain on the internet. He has no kewords to search for other users complaints and mitigation strategies they came up with. You as a developer you seriously limit you capacity to react to the things you didn't anticipate if you don't give your users relevant information about which unhappy path your software took in their case. Unless you have full default telemetry on a piece of always connected software you should give your users informative messages. Not necessarily immediately informative to them but letting them have a keyword for further inquiries.
- brandon272 3y ago404 Our sincerest apologies, but file not found
- qwerty456127 3y agoChatGPT seriously hurts me by apologizing all the time. Every time I ask it anything, let alone tell it about its mistake I want it to correct, I feel like I'm exploiting, abusing and hurting an insecure kid. So no, I want a machine to speak with cold, objective, concise factual style, not trying to mimic an overly polite person.
- danielvaughn 3y agoI always like to split error messages into two categories - developer-facing and user-facing. The former is geared towards diagnosis, the latter is an act of customer service. The two should never be intertwined - I see this happen way more often than I should. When you present a user-facing error message, it's akin to admitting a failure of some kind. Whether it's a user error or a system error, the customer-centric position to take is that the responsibility always rests with the business. If the user made an error, then in theory it was the business's failure to prevent them from attempting to take that action. In practice of course, that's not always the case, but it's good practice to assume it by default. So I always like to include a "sorry", even if hypothetically it's not warranted.
- beeboobaa 3y ago"Sorry, you filled out the form incorrectly"
- danielvaughn 3y agolol yes, ironically. It does sound silly, but it's entirely possible that the form itself was confusing, so maybe the business could have done a better job of steering the customer towards filling out the entries correctly. That's the kind of thing I mean.
- pk-protect-ai 3y agoIt is so annoying when software issues an apology, and LLMs are especially annoying because of their constant apologies. I can't use any of them anymore unless I precondition them to be laconic and limit their output. It's such a waste of time and resources.
- cratermoon 3y agoMany years ago I had a girlfriend who worriedly asked me about an "illegal instruction" error when her browser crashed. She added that she was not on a porn or shady site. She had read "illegal" and interpreted as applying to something she did. People who aren't into computers and software don't know wtf an "illegal instruction" is. They just want to know what to do fix it and not have it happen again.
- ohyes 3y agoI like my error messages to eschew anthropomorphisms. Tell me what went wrong so I can figure out how to fix it. I don’t care whose fault it is or how very sorry they are for the mistake. Even saying “the website you are trying to contact is down” can be misleading, maybe it’s not down, maybe I’ve lost my internet connection or the ip changed and dns hasn’t updated, or I have some rule locally that is redirecting me incorrectly. Guiding someone into an assumption is harmful and a waste of time, if not dangerous. I understand that consumer stuff is all about dumbing down the experience so that an idiot can do the thing (we should strive for the most idiot proof interface possible), but that design principle is useless when things go wrong and you need to fix it.
- whynotmaybe 3y agoYou are giving an explanation on my feeling on why the "year of the Linux desktop" won't come. Linux is maintained by power users that want to give the same power to every users but nowadays, the vast majority of users don't need and don't want those powers. I guess you never had to deal with the flow of complaints whenever an update was installed and the icon for the app changed. Many users couldn't start "the application". It was even customary in some organizations to create their own shortcut with their own icon to start iexplore or excel. I know that whenever a site "can't be found", it's been blocked by my pihole. But to anyone else connected on my network, it's "the internet is down".
- jodrellblank 3y ago> > I understand that consumer stuff is all about dumbing down the experience so that an idiot can do the thing > Linux is maintained by power users that want to give the same power to every users Look at the assumptions behind "UX is dumbing down" and "idiots". Good UX is about making the same power more consistent to waste less of your finite brain power to use it, leaving more free for other things. Good UX is about keeping the same power but making it easier for intelligent people without experience to come in and pick it up and predict how it will work. Good UX is about making the abstractions cleaner and the tools more extensible to allow the same power to be used in more situations. Good UX is about settling the existing tools to allow even more power to be added, or built on top of them, without them collapsing. Good UX is about making the same power lower activation effort to use so you can focus less on setting up the tooling and more on the problem space. Good UX is about making it easier for idiots to use it, but not at the expense of experts. Good UX is about making a problem go away completely so nobody needs any tooling or to waste any time on it. > "I know that whenever a site "can't be found", it's been blocked by my pihole. But to anyone else connected on my network, it's "the internet is down"." That's a terrible UX. There's nobody helped by you feeling clever for understanding an inaccurate error message and looking down on people who don't understand it. Putting a clear and accurate error isn't "dumbing down". That's the fear that you would feel dumb if you didn't have to work hard and know secret incantations to achieve results.
- bitwize 3y agoMaybe if they're Canadian? Though I can't fathom, say, Theo de Raadt ever adding apologies to OpenBSD error messages. You know what's cyberpunk to me? Cyberpunk isn't about having robotic body parts and netrunning in cyberspace through your brain implants in a chrome-and-neon-encrusted arcology. Cyberpunk is owning a Taiwanese bargain-basement PC and booting Linux on it in 1995. Because like real punk rock, Linux was DIY and it showed -- it was messy. When you booted it up, there was no sugarcoating -- no warm and friendly bootup sound, no happy Mac smiling back at you. The various bits and bobs that made up a working Linux system started chattering to you -- all at once: first the drivers and kernel subsystems, then the init scripts, then some of the user-space daemons, all telling you unbidden how their day is going. Every component of the system told you what was going on with it, for good or ill. It would've been quite alarming to a normie; 1995 was far from the year of the Linux desktop. But I appreciated it. And I resent error messages that try to mollycoddle me as a user. Apologies, "Something went wrong :(", and so forth. Just tell me, in the most rigid machine-like way, what happened. A stack trace would be helpful if the failed bit is open source.
- HankB99 3y agoI never liked the Windows confirmation messages "Are you sure you ...". If I answered affirmative, it completed the operation.If I replied negative, it never ever offered help deciding.
- simonblack 3y agoThe most famous error message apologises: "Sorry, Dave. I can't do that."
- forinti 3y agoI grew up using British software. It would be very polite. Please enter your name. Nowadays, I see this level of terseness in software: Name: And error messages are usually an afterthought, so the concept of politeness doesn't even appear on the radar. Error: null. There's a turnstyle I use everyday that simply orders you to "Leave" or "Enter". I think UIs should apologise if something that's not the user's fault happens (no network connection); be polite when giving orders (please do this or that); and be very precise when indicating input errors and suggest a course of action.
- c22 3y agoI don't really care if the error message is cute or whatever. What I care most about is that you did everything possible to prevent me from even seeing the error in the first place. Then, once you've determined the error is not recoverable without user intervention make sure to tell me about it in a way that's actionable on my part. I should immediately know after reading the error whether I should: • Immediately try again • Wait some time and try again • Change my input and try again, or • Give up and walk away
- dang 3y agoRelated: Should error messages apologize? - https://news.ycombinator.com/item?id=7561139 https://news.ycombinator.com/item?id=7561139 - April 2014 (45 comments) Should error messages apologize? - https://news.ycombinator.com/item?id=5012203 https://news.ycombinator.com/item?id=5012203 - Jan 2013 (46 comments)
- zinodaur 3y agoThe thing that ticks me off is when a website has a cutesy patronizing tone in its error message, and it was them that messed up. "Ooopsie! Looks like you clicked on a picture that doesn't exist!" Instead of "We fucked up and served you an invalid link"
- inglor_cz 3y ago404-like errors can well be caused by you doing Ctrl-C/Ctrl-V incorrectly, or some third person messing up a link. I am not sure if the additional complexity that would stem from teasing those scenarios apart and serving them with different messages is worth it.
- tail_exchange 3y agoJust one saying "image not found" is sufficient. Not only it's sufficient, but it's also not patronizing when users didn't do anything wrong.
- inglor_cz 3y agoTrue. Brevity works better.
- WesolyKubeczek 3y agoThey say that in writing, passive voice is weak. There is something to this statement. Arguably, computers are exempted from avoiding it on account of their lack of personhood. But imagine that you need to come up with messages that avoid passive voice, acknowledge the user's agency, and don't personify the computer. I tried to play this game and came to the conclusion that computers should literally say No to fit these requirements. "No. Your email won't be sent. The mail server at smtp.somewhere rejected the message." "No. Whatever is in your address bar does not exist on this site." "No. The update package file has a checksum mismatch, and the system will not apply it." "No. The remote server dropped the network connection, leaving the update file only partly downloaded. The system has already retried the download 10 times and failed, so you will need to rerun the update." "No. This program is compiled for a different kind of computer and won't run here." "No. This is not a document file. You need to open it with another program." "No. You supplied an incorrect username or password." "No. You are trying to open a file too large to fit in the memory." "No. Your form is missing required fields X, Y, and Z. Please fill them out before submitting." "No. Your request encountered an internal error. Someone in charge of servers will eventually notice it." "No. Just leave. Touch grass." "No." "NO!"
- dusted 3y agoNo, they should tell me what went wrong, in enough detail that I can understand it and determine the cause of the error so I know whether there is anything I can do differently to get around it or fix it.
- inopinatus 3y agoThe finest system message of all time being ++?????++ Out of Cheese Error. Redo From Start. you may generalise from there.
- Lammy 3y agoI always loved the 1990s Mac OS "Speech" control panel where you can set it to preface its reading of dialog boxes with “It's not my fault! <Dialog box contents>” https://i.imgur.com/CWrSQpf.png https://i.imgur.com/CWrSQpf.png
- charles_f 3y agoTangential - one thing I particularly despise is trying to be funny when an unexpected error occurs. A la "oops, something went wrong", "Sowwwy, an error occurred!". Especially when this is breaking my flow, I'm not in a mood for cutesy messages and fun.