10 comments

  • magicalhippo 4 hours ago
    Error: File not found

    Which file?!?!?!

    Anyway, I disagree strongly on the technical jargon. Ok, if it's not really an error and the user can retry or similar sure.

    But if it's bad times, an exception or similar, don't care about the user. Instead include as much detail as you need. A non-technical user won't be able to do anything anyway, and a sanitized error message means support or a technical user has a much harder time figuring out what the real issue might be, in order to work around it.

    Failed to load a shared library? State the filename and exact error code and message, and anything else that might be useful. And so on.

    • Insanity 1 hour ago
      IMO if you show an error to end users it needs to be actionable. Tell them what to do instead (e.g retry or wait, use other input file, etc etc).

      So don't say "InvalidArgumentException xyz", say "Expected a number but got 'hello'".

      This doesn't always work, but essentially hide tech details from users. If you must, include a bit of extra information (a request number or whatever) that helps you log dive.

    • dec0dedab0de 2 hours ago
      Agreed, but you can have both. A simple error for the user to understand, and a click for more details that spits out all the troubleshooting information.
      • ozim 2 hours ago
        It depends.

        If you’re SaaS vendor you should give troubleshooting information to your support team skipping the user. User should get “our support team received the error” and support should handle it directly.

        “Something went wrong, try again later” is also acceptable but only if support team gets info about it and user really ca just try later.

        • dmd 2 hours ago
          I have approximately zero confidence that if I see an error message that says "our support team received the error" that anyone has received the error.

          In fact I would generally bet thousands of dollars against that.

          • bluGill 28 minutes ago
            That depends. There are common errors where the support team gets that information because they have seen it before and having seen that error changes the support script in a hopefully helpful way.

            Companies generally have massive amounts of errors though. They investigate the most common errors for their script. Sometimes when someone figures out a different error they adjust the script. Most errors though never get investigated.

          • pixl97 1 hour ago
            Eh, depends.

            I very much believe this gets dumped in some kind of ELK stack or something like that. And quite often teams will monitor to ensure that some new error message isn't going wild and alerts are sent out.

            Single errors mean nothing, unless of course you're putting in a support call and we're directly looking it up.

        • appplication 2 hours ago
          > “our support team received the error”

          Oh good, I guess I’ll expect to hear back never.

          I think it’s a good thought but we’ve been conditioned that these things are black holes. User should have all agency in escalating or continuing troubleshooting rather than implied wait for deus ex machina from the support team.

        • inetknght 1 hour ago
          > If you’re SaaS vendor you should give troubleshooting information to your support team skipping the user.

          What support team? The ones that were all not hired in the first place, and if they were hired then they were replaced by AI? The same support team that customers simply cannot reach at all?

          Sounds very useful.

    • mandevil 3 hours ago
      Depends on exactly the situation- when I worked on a very expensive desktop application years ago I was warned about giving too much information in error messages as it might help crackers.

      With how powerful Ghidra is now, I'm not sure that it matters much any more.

      • EvanAnderson 2 hours ago
        > Depends on exactly the situation- when I worked on a very expensive desktop application years ago I was warned about giving too much information in error messages as it might help crackers.

        As a sysadmin (having spent 30 years dealing with desktop software) the attitude of the people who gave you that direction make me seethe with anger. Crackers gonna crack. That just hurts the people who have to make the product work in their environment.

      • landr0id 3 hours ago
        Static analysis tools + MCP server + a debugger with an MCP server makes reverse engineering incredibly easy and low-cost.

        I wrote a blog post about this recently: https://landaire.net/reverse-engineering-with-ai/

        Just yesterday I completely reverse engineered several proprietary audio codecs from a game without even having to touch the static analysis tool myself.

      • vector_spaces 3 hours ago
        This is security through obscurity -- can complement other methods but won't do much for you against competent adversaries.
        • pixl97 1 hour ago
          Anyone can access the web interface including attackers, so don't dump debug information there. Feel free to put the errors behind an admin interface or to local files that can be retrived.
    • arjie 3 hours ago
      I've done this to myself because I was too lazy to write the `fmt!()` instead of the raw string while I was iterating and then just forgot to fix it later. I think the Go logger's default of accepting chained parameters that it logs by default to JSONL worked well to avoid that. Convenient ergonomics just in time (in the cosmic sense of programming) for it all to be irrelevant because an LLM always puts it in the error string.
  • harperlee 3 hours ago
    Hopefully this becomes a reversal in the trend of giving less and less context to the user.

    I'm not against the considerations of the article regarding the user and its state of mind, but please do add as much technical detail as possible!

    Even if an error message is a cryptic error code, that's better than a "Something went wrong" message. This is not better, or even friendlier, UX. An error code can be referenced, can be searched on the internet, can be passed around on a ticket or on a call... add parameters to your error template, reference the name of the file, the item name that does not respond, the HTTP error code... just give the user some transparency, some agency. Help the client build up a mental model of the error: when / how / why might it be happening.

    • Groxx 3 hours ago
      I'm somewhat fond of including a UUID for that reason. As long as they can copy-paste it into Google, they can get results that are precisely the errors from your application, unlike "error 55324". The same works internally: zero ambiguity which system it came from, and it's trivial to find the full history of the error (message). It's not great for verbally communicating tho.

      But yes, I can get behind making things nicer to read and less technically scary, but include enough detail so that people can solve their own problems if needed. There's a decent chance that the software will outlive your desire to support it.

  • wpollock 1 hour ago
    Long ago, I had the insight that not all users are equally technically proficient. Some had the chops to fix some problems if given sufficient information. Other users would be confused with too much detail.

    I was writing code for AT&T (in the 1980s), and we were our own customer. So I wrote the error routines to check an environment variable and provide different error messages for different types of users: developers, testers, and a few power users got very detailed error messages, ordinary users got friendly, simplified messages (and weren't told about the environment variable).

  • ragall 5 minutes ago
    I fail to understand why "Try again later" is considered bad because "Generic", but "Please try connecting again" is good because it's "Help them fix it". Likewise, it says "You changes were saved" is good because it "provides reassurance", but is it true ? The next sentence is "but we could not connect to your account", which could very well mean that the request didn't go through and the changes weren't saved. There's no way of knowing.
  • randycupertino 2 hours ago
    "Oh no, you broke reddit."

    I didn't break it!!! Reddit is down and your server is overloaded.

  • CM30 3 hours ago
    I think this post has some interesting points, but it kinda misses a few more as well.

    First, appropriate tone depends heavily on the product or service in question. A bank or otherwise serious business should probably not be giving messages like "whoops, something went wrong". But an entertainment product could have those sorts of messages, and treat it as part of the overall experience.

    Secondly, I'm not a huge fan of error messages that don't give actionable feedback for how to fix the issue. Yes, a lot of users don't need that sort of information, but some sort of error code or technical reference can be handy for more involved support processes.

    So, if the product or service is business orientated, maybe have that info in a dropdown box or something, where a support agent can ask the user to find it if an issue keeps occurring. And of course, if the product or service is aimed at technical people (like an open source infrastructure project), maybe just skip the casual language and just get to the point.

  • vector_spaces 3 hours ago
    You can certainly learn a bit about how a company thinks about UX, accessibility, and its users more broadly by looking at its error messages. Although I didn't care for much of the specifics proposed, I am glad about this post as I think it is important to think through error messages with intention and treat them as products in their own right.

    Regarding the proposed "good" alternative, it has less actionable information than the original "bad" message, depending on what the product is and who its users are. In particular, you can't determine whether "fetch data" is impenetrable jargon without looking at the product itself and its users.

    I also frequently see people use the designation of a user as non-technical as an excuse to dismiss their intelligence. It's true that tech folks generally underestimate how confusing computers and software are to the average person, but erring too heavily in the other direction also has negative impacts for accessibility. Either way, you can at least hide away that extra detail, with jargon and all, using that link tip she mentioned.

    Finally, this writer seems to overestimate the extent to which most users view "contact Customer Care" as "giving them a way out" and not an invitation for further aggravation.

  • HelloUsername 3 hours ago
    (I can't read the first part of the title without hearing Cave Johnson)
    • rf15 2 hours ago
      You're right, all error messages should be voiced by Cave Johnson.
  • croisillon 2 hours ago
    (2022)
  • utkarsh4995 1 hour ago
    [flagged]