4 ms·
> Write clear error messages Totally. So often, the message that comes out on a "this should never happen" branch of the code is a random invention of a junior
by AlbertCory 4y ago
> Write clear error messages
Totally. So often, the message that comes out on a "this should never happen" branch of the code is a random invention of a junior coder, and never reviewed by anyone.
> be clear about what someone can do to fix it.
"Sorry, an error has occurred."
i.e. All hope abandon, ye who enter here.
- gampleman 4y agoError messages are one of the items on my mental code review checklist that gets very often excersized, since going from terrible to OK is usually pretty easy, but it's often a very different mindset from the actual programming task that introduced that error pathway. So usually it's up to the reviewer to notice and guide the author to that improvement.
- dewey 4y ago> branch of the code is a random invention of a junior coder No need to blame interns or junior coders, this is done by big corporations after going through reviews and design iterations too.
- pavlov 4y agoMany of Apple’s own apps are egregiously bad at reporting errors — as in, they don’t report them at all. When Airdrop doesn’t work, it just gets stuck. No timeout, no nothing. I guess that’s very clean from a UX writing perspective because you don’t even need an error message. But it’s extremely frustrating to the user. The iOS Family features suffer a similar lack of feedback. I toggle an app limit for my child and sometimes it just secretly doesn’t register on the server. I navigate back and forth to see the UI action hasn’t taken effect. (Often I wonder if anybody at Apple actually has kids because Family works incredibly poorly. 30-second delays are common. Notifications don’t come through. User flows go through confusing incorrect states. Etc. Feels like it’s maintained on leftover MobileMe infra by junior developers who have no idea why anyone would even use this product.)
- tshaddox 4y agoAirDrop is a particularly egregious outlier. It’s clear that something has gone very, very wrong with that feature. Not only with how unreliable it is, which is already bad enough, but with how clearly broken that basic state machine driving the UI is. Once it has gotten into a bad state, from my experience there’s no way to get it to succeed without restarting one or both iPhones.
- thiht 4y agoApple Music too is awful with error messages. There's one time I wanted to add a song to my library, I clicked the button and nothing happened. Which is the exact behaviour you get when it succeeds. Except it didn't work and my song wasn't added to my library. I tried a few more times and it just didn't work for this particular song. Thinking I maybe "lost" dozens of songs because they weren't added to my library is one of the reasons I went back to Spotify
- aprilnya 4y ago> Which is the exact behaviour you get when it succeeds. If it successfully adds to library, it doesn’t just do nothing, it gives you a “Added to Library” thing
- ragazzina 4y ago>When Airdrop doesn’t work, it just gets stuck. No timeout, no nothing. Even when Airdrop works, it doesn't work. One "feature" of Airdrop is that if you try to airdrop something from your iPhone to your iPad, for example, but you had already airdropped it earlier, it won't give you ANY indication. It will make a nice ping sound, and just do nothing. This is so infuriating.
- groestl 4y agoI bet Apple Subscriptions is a popular product and makes them tons of money. Yet their admin UX is just as poor, I got instantly tiggered by your description.
- threeseed 4y agoApple's policy has been to show error messages when the user can do something with the information. And in most cases trying again is the only thing they can do so it tends to be minimal. Also I suspect many of those issues you're seeing involve asynchronous behaviour which is a hard UX challenge to solve. You could send a push notification that an update has failed on the server but often the user has moved onto something else.
- ssgodderidge 4y agoPreach. In the same vein, I hate when I get a random error code (e.g. "error 189") in an error message on the UI as a user. Am I supposed to remember that as a user? Will support know what the error code means? Genuinely curious why some generic error messages (e.g. "Something happened") include these error codes.
- MereInterest 4y agoAt least if there's an error code, I can search for that specific error code and see if anybody else has run into it. Seeing "Error 3bad617a" means that somebody else may have copy-pasted that same error message, and it might show up in search for "$PROGRAM_NAME 3bad617a". This is best if every location that can give an error has a unique code, but can be useful even if it is just parroting some low-level code. In other cases, an error code may be a standard value, and indicate that something is wrong with the inputs I provided as a user. If I see "Error saving file: 13", I may guess that the "13" was returned by some system call and is the error code EACCES or "Permission denied". I could test this by saving the file in another directory. The specific error code is useful for knowing what to do next, as error code 28 would be ENOSPC or "No space left on device", and I'd instead check if I ran out of disk space. (It would have been better if the error number had been passed through strerror() before display, but having the numeric code is still better than nothing.)
- AlbertCory 4y agoBecause there's a programmer who knows what 189 means, and the fact that it happened out in the wild means he can potentially fix the problem. No, Support won't know, but they can pass the information on.
- rippercushions 4y agoError codes are far better than lack of error codes. I was once involved in a large project to add unique, Googleable codes to all errors that could happen with $POPULAR_API, and support tickets dropped considerably after they were added.
- wruza 4y agoNumeric error codes are useful for troubleshooting, e.g. you can google “<program> error <code>”, or its developer can find where or around what exactly it’s localized. The “something happened” part usually comes from a generic error handler that reports surprising errors. E.g. your current graphics card driver messes with directx internals in a way that the game couldn’t foresee this sort of exception in that code path. So here you go, “unknown error 0x8000abcd”. Google it -> update your driver.
- sjaak 4y agoIt can also be fun :) Guru Meditation! https://en.wikipedia.org/wiki/Guru_Meditation https://en.wikipedia.org/wiki/Guru_Meditation