2016-04-21

A compendium of bad error messages

The subject of computer error messages is something that is guaranteed to get me riled. Errors are a sad fact of life in computing and something no one really wants to happen, but so many IT companies really don't help themselves with their unhelpful and often flippant attitudes towards them. It shouldn't be difficult to write a clear, concise description in language the average user can understand of what went wrong, what caused it and how to solve it, yet even in the short time I have worked in IT I have seen so many error messages that are quite frankly terrible and unfit for purpose and become utterly exasperated by them.

They range from the indecipherably technical to the overly 'friendly' and vague, via total gibberish, patronising nonsense, inappropriate frivolity and instructions that are quite simply impossible to follow, but all have one thing in common: they have singularly failed in their sole duty of helping the unfortunate user to understand and recover from the error. Here, in no particular order, is my own personal compendium of the worst error messages I've ever had the misfortune to encounter. You may find some of them hard to believe, such is the scale of their sheer awfulness, but I can assure you every one is genuine and has been seen on a real live computer system in the 21st century.



"Keyboard error or no keyboard present. Press any key to continue" (PC BIOS)
Press any key on what exactly? It's an oldie but still a goodie with its simple yet contradictory instruction.

"Unable to load help. Click help for more information" (various)
You want me to do what? Look at the missing help file for information about the missing help file? I guess that means I'm beyond help.

"The system cannot find the file specified" (Windows)
Isn't there something crucial missing here? What file can't you find? If you don't tell me how am I supposed to check if there's a problem with it?


Yes, yes it has. That is unfortunate but what caused such misfortune?

"Unfortunately, Internet has stopped" (Android)
Thank you so much, I figured that out myself. Any chance of telling me why it stopped? The OK button isn't really appropriate either: no, it isn't OK with me that the program crashed.

"This program has encountered a problem and needs to close. Do you want to send an error report to Microsoft?" (Windows XP)
I might be more inclined to do that if there was some evidence that Microsoft actually did something with these error reports. It's especially perplexing when this appears for non-MS software as the only thing you can do with the error information is send it to a company who know nothing about this software, so how is that going to get the error fixed?

"Please insert your Windows installation disk" (Windows Phone)
Please tell me how I am supposed to insert a CD into a phone. Someone obviously forgot to rewrite this bit when developing the mobile OS from the desktop version, resulting in an instruction that's physically impossible to follow.

"If the problem persists, contact the person who manages your network" (Windows)
I'm the person who manages my network. I contacted myself but I didn't have a solution so what do I do now? This appears to be a throwback to the days when networks only existed in corporate environments and were managed by dedicated staff, and has never been replaced by something more appropriate for home networks.

"Can't connect to this network" (Windows 10)
Is that all? Where's the rest of the message that tells me why? Why do so many software companies refuse to provide even the slightest hint at what might have caused the problem? Windows 10 also has a bad habit of wrongly blaming connection errors on incorrect passwords and then claiming the correct password is not valid.

"Incorrect password" (iPad)
Kind of similar to the Windows 10 experience above, I repeatedly got this message when I was 100% certain I had entered the correct network password. Then I moved elsewhere in the building and all of a sudden the iPad decided that exact same password was correct after all so it must have really been a connection issue. This message can also misleadingly appear when the password is correct but the username is invalid.

"An error occurred while reconnecting <drive letter> to <path>. The local device name is already in use. The connection has not been restored." (Windows 10)
You can't map this drive letter to this network path because it's already mapped to this network path? That's an extremely cryptic and bizarre way of saying a network drive can't be reconnected because there is a network connectivity problem. 
 
"You can also connect by pushing the button on the router" (Windows 10)
Not exactly an error message but a nonsense instruction. There is only one button on my router and it turns the power off so Windows definitely won't be able to connect if I push that.

"An undefined error occurred" (various)
How can this even happen? Errors don't implicitly exist in nature so every one of them must have been defined by someone. What this really seems to mean is "We know this is an error of some sort but we can't be bothered to give it a proper definition".

"Facebook isn't responding. Do you want to close it? Wait, Report, OK" (Android)
The message is clear enough but the choice of option buttons really isn't intuitive and leaves the user unsure what to do. Surely this is one of those cases where a simple yes or no is best; OK can be assumed to be a yes but it just isn't obvious what wait and report mean as answers to that question.  

"Error code: 0x8000c35a" (various)
What the hell does that mean? You haven't made a definition of error code 0x8000c35a publicly available so no one other than your developers has a clue what it is and it's completely useless to me as a user.

"Your Apple ID has been disabled" (Apple app store)
Like so many messages, the intent is good but detail is lacking and it doesn't answer the important questions. Why was my account disabled and how do I re-enable it? That information should be in the message and I shouldn't have to go elsewhere to find it.

"Software update failed. An error occurred downloading iOS 11." (iPad)
Apple's brevity strikes again. What sort of error occurred and what am I supposed to do about it? How will I ever be able to download the update if you don't tell me why it's failing so I can fix the issue?

"There was a problem accessing a property or method of the OLE object" (Microsoft Access)
There are several hundred OLE objects, each of which has dozens of properties and methods that can suffer dozens of problems, so all you're really telling me is that any one of thousands of different things has happened. That's very helpful (not).

"The process has been signaled with signal '11'" (Linux)
A frustratingly generic Linux error, signal 11 just means a segmentation fault and could have any number of causes so trying to find out what actually happened is virtually impossible.


I tried and tried and still didn't succeed. Trying again obviously isn't the solution so what else should I do?

"An error occurred while trying to save or publish your post. Please try again." (Blogger)
I did as you said several times but it still didn't work so whatever is causing the error isn't going to be solved just by repeatedly trying again. Isn't doing the same thing over and over again and expecting different results the definition of insanity? Ironically this one happened right here in Blogger while drafting this post.

"This reply has not been added as it has been posted too quickly" (IPBoard forums)
What? This one really threw me when it popped up but I think it was actually trying to tell me I'd accidentally hit the 'Add Reply' button twice and tried to post the same content again. Why didn't it say that though instead of this nonsense about posting too quickly that made me think the forum software was just too slow to cope with adding replies.

"Unable to record this programme because another programme is being recorded on the same channel at the same time" (Logik personal video recorder)
It isn't just computers that are cursed with bad error messages and embedded firmware can suffer too. It's not even possible to broadcast two different TV programmes on the same channel at the same time, so the developers have created a message for a scenario that can't possibly exist. I think what causes this message is trying to record an individual episode of a series you've already set up to record, but it's a very confusing way of saying that.

"Error: the operation completed successfully" (unknown)
You what? You're telling me the error is that everything did what it was supposed to without going wrong? That makes no sense whatsoever. Another variation on the same theme is "The following error occurred: no error".

"Do you want to leave this application?" (SITS:Vision)
Why is this routine question displayed in a message box featuring the red cross icon that indicates an error? Closing the application is a user action that is not by any stretch of the imagination a program error.

Umm, that's a question, not an error. Why the red cross?


"For more information, please visit the following link" (Microsoft Office)
This sounds good as there's a whole web page dedicated to this error. It would be, but for one key thing: the web address is very complex and contains a long hexadecimal string. It is not a hyperlink and nor can it be copied and pasted out of the message box, so the only way to access the page is by very carefully manually typing that long and complex URL into your browser's address bar, something few users can be bothered with.

"The expression OnClick you entered as the event property setting produced the following error: ." (Microsoft Access)
This one really is dire. Why is the error description blank? How can I debug an error when you don't even tell me what it is? A required parameter obviously isn't being supplied so this is just sloppy coding. Even worse, it commits the cardinal sin of blaming the user for something the developer did: 'you' is actually addressing the person who wrote the code so it's meaningless in the finished application and the innocent user is left wondering what they did wrong.

"The operation on the | object failed" (Microsoft Access)
So many unanswered questions here. Which object was it, what was the operation and why did it fail? These are basic things I need to know but you're just not telling me.

"The %1 operation failed because of %2" (Windows)
This is obviously a generic message and %1 and %2 are placeholders for variables that should be supplied by the process that caused the error. There's sloppy coding on both sides here: whoever wrote the program failed to supply these values to the error handler, and whoever wrote the error handler assumed they would always be supplied and didn't consider what would happen if they were missing, resulting in this nonsense.

"Unexpected error" (various)
The word unexpected is redundant. All errors are by definition unexpected as you don't ever expect your program to routinely go wrong in normal usage and no one has ever used an "expected error" message. Why not omit that pointless word and use the space to display something useful instead?


Oh my god, it's a catastrophe! We're all going to die...

"Catastrophic failure" (Microsoft Access and others)
Uh oh, this sounds ominous - not just a mere error but a catastrophe. That's a great way to scare the living daylights out of your users by seriously overestimating the severity of the problem and making them believe their computer is having a meltdown. I've never seen it myself but apparently Java has a similar "Unholy error" - you don't need a developer but a priest to sort that one out!

"User cancelled out of save dialogue" (SQL Server Management Studio)
This one is just stupid and totally pointless. It isn't even an error as I clicked the Cancel button intentionally so why does this message even exist?

"Sorry, an error occurred while loading the content" (Yahoo Groups)
What sort of error and what am I supposed to do about it? There's nowhere near enough information here. 

"Unexpected error happened" (Atlassian project management software)
Those three words are all you get as an 'explanation'. I think the poor-quality Wi-Fi in my office disconnected itself at a critical moment but I had to diagnose that all by myself with no help from the software.

"An unknown error occurred (1761)" (iTunes)
This makes no sense. Someone must have defined error code 1761 so how can it be 'unknown'?

"The operation failed" (Microsoft Outlook)
How very informative. Where's the rest of the message explaining why it failed?

"The custom error module does not recognize this error" (Microsoft Outlook)
It's not a very good custom error module then, is it? What's the point of writing a custom module that handles errors worse than the standard one?

"This username may be incorrect" (Microsoft Outlook)
Huh? Either it is or it isn't and computers don't do 'maybe'.

"Windows Update ran into a problem" (Windows 8)
Okay, but how am I supposed to do anything about it if I don't know what sort of problem it was?

"Unable to update the password. The value provided for the new password does not meet the length, complexity, or history requirements of the domain" (Windows 10)
Fair enough, but how do you expect me to create a new password that does meet the requirements when you don't tell me what they are and I have no other way of finding out?

"Create a PIN that meets the requirements" (Windows 10 setup)
Another variation on the same issue, this one occurs when you first configure Windows and nowhere in all the preamble is anything to explain what the requirements are. Worse still, you can't skip it, continue setup and enter a PIN later, so you just have to guess at what might be required.

"Sorry, something went wrong. Please try again later" (LinkedIn and others)
How much later? Five minutes? A week? Ten years? How will I know this unspecified problem will have been fixed by then? 

"Something went wrong. Please try again in 15 minutes" (Amazon)
Amazon's own weird variation of the above is equally non-specific about the error but oddly specific about the time to wait before trying again. I disobeyed by trying again immediately and it succeeded. Where did they get that arbitrary number from, and how can they guarantee all errors will be fixed within that timescale?

Have Microsoft hired Homer Simpson to write their error messages now?


"D'oh! Something went wrong..." (Microsoft Teams)
I never thought I'd see the day that the language of Homer Simpson would find its way into a Microsoft product. I suppose it's a creative new way of telling the user absolutely nothing of any use whatsoever, but seems inappropriately casual for use in business software. 

"An error has occurred in the script on this page. Line: 0, Character: 0, Code: 0" (HP printer driver installer)
I don't think it's possible for programs to even have a 0th character on the 0th line of code. This is just meaningless unhelpful drivel that doesn't tell you anything about what or where the error is, caused by using 0 as a default value and wrongly assuming it would always be replaced.

"Unable to connect to chat. Check your Internet connection." (Facebook)
I checked my internet connection and it was absolutely fine. Please don't blame the user for your server errors or make them do something that isn't going to solve the problem.

"An unexpected error occurred. Please try logging in again." (Facebook)
I tried again repeatedly and still couldn't log in. That clearly isn't making any difference so what now?

When does trying again ever make broken things work?


"Verification Failed. Please retry activation." (iPad)
Two questions here. 1. Why did it fail? 2. How do I retry activation? There are no buttons on that screen to enable me to do anything. As you can see from the number of times the iPad features on this list, error handling in iOS is basically atrocious.

"The attempt to unknown the computer failed" (Windows XP event log)
The word 'unknown' should normally read 'shut down' or 'restart', which both make perfect sense, but for some reason in this case Windows was unable to identify what the user was trying to do, resulting in this gibberish. The computer didn't take kindly to being unknowned.

"The application failed to initialise because the window station is shutting down" (Windows XP)
This spurious message appears when an application can't start because the user has initiated a shutdown and therefore doesn't need the application to start anyway. There's nothing the user can do about it and the message itself is preventing the shutdown so it would be better off just not existing. What the hell is a 'window station' anyway? No one ever refers to a computer by that name. 

"User Cannot Assigned To Parent Lg" (Airwatch Console)
The error messages in this particular application seem to have been written by an illiterate (or badly translated from another language) and don't even make grammatical sense. I haven't the faintest idea what this incomprehensible gibberish is trying to tell me.

"User edition is not allowed for the following security type" (Airwatch Console)
Another from the same application. Slightly less cryptic but it still doesn't make sense and the "following security type" is not included so I don't really know what's wrong. I assume 'edition' is supposed to mean either 'addition' or 'editing' but who can be sure?


What on earth has this disobedient panda got to do with errors on a photo sharing site (or anything else for that matter)?


"Bad, bad panda! Come on. We want photos" (Flickr)
The infamously frivolous Flickr error page containing a random irrelevant picture of a girl with a panda on a lead but literally nothing about the problem. I guess it's supposed to be humorous but program errors are no laughing matter so it's just annoying and pointless. Why would you want a mascot that symbolises your failures anyway?


WTF are 'Tumbeasts' and did Tumblr seriously expect anyone to accept their server errors were caused by fictional creatures running riot?

"We'll be back shortly. We may have forgotten to feed the wild Tumbeasts that roam our datacenter, resulting in gnawing and/or mutiny. Animal control has been alerted." (Tumblr)
This cringeworthy attempt at being cutesy is even worse than Flickr's panda. It's outright nonsense, pure and simple, and is both patronising and says nothing of any value whatsoever. Tumblr have at least now seen sense by replacing these meaningless creatures with a proper message that actually describes the problem.

"The SDS is reporting an error accessing the SDI. Explanation: The SDS is reporting an error accessing the SDI. Action: " (PC-Bax)
The worst error message I've ever seen. It tries so hard to be helpful but fails so dismally. The 'explanation' doesn't explain anything, the 'action' is completely blank and the abbreviations SDS and SDI are not defined anywhere so I don't have a clue what they mean.

"Your photos didn't make it to Flickr. It looks like there is a problem with your internet connection." (Flickr Uploadr)
This is not only patently untrue but also wrongly blames the user for an internal server-side issue. There was nothing whatsoever wrong with my internet connection when this appeared, and switching to an older version of the uploader revealed the real error message, which related to the server being unable to start a process so it was completely outside the end user's control and had nothing to do with internet connectivity. Even more bizarrely, when I tried to make this message reappear by uploading while disconnected from the internet, the program just hung indefinitely and didn't show the message in the one circumstance when it would be truthful!

"MethodNotAllowedHttpException" (Laravel PHP framework)
Error handling in Laravel is generally pretty good but this one is a stinker. There's plenty of useless info about which lines of the Laravel source code threw the error, but not the one thing you actually need to solve the problem: the name of the route it's trying to execute and the method that's not allowed. Luckily, being open source software meant I could rewrite the handler to report this info.

"FATAL ERROR: upgrade failed" (MySQL)
If anything at all goes wrong during a MySQL upgrade, this highly uninformative message is all you get. Information on what caused the upgrade to fail is impossible to find and there could be any number of different reasons from an incorrect password to a corrupt installation so it really isn't at all helpful.

"The requested URL returned error 401. Fatal: HTTP request failed" (Gitlab)
This is caused by you entering your password incorrectly, so why on earth does the message make no mention of a password? 'HTTP request failed' doesn't give you any hints so I guess they just expect you to know that code 401 means an authentication failure.

"Error 1907. Could not register font. Verify that you have sufficient permissions to install fonts, and that the system supports this font." (Windows 7)
It would be far more helpful if you told me the name of "this font". Yet another message that omits the single most important piece of information needed to identify the cause of the problem.
 
"The file cannot be opened because there are problems with the contents." (Microsoft Word)
This doesn't seem too bad and there's even a nice button you can press to see more information about the problems. So far so good, but when I pressed this button Word's response was to tell me that "no further information is available". So you've basically decided there's a problem with this file without having any idea what that problem actually is? Surely you used some information to determine that there is a problem, so why can't you give me that?



And finally...

Writing error messages is obviously something many developers find very difficult so why not just avoid them altogether by simply hiding all errors from the users and never bothering to tell them when something goes wrong? I'll finish with this brilliant example of error suppression practised by a former colleague. 

"On Error GoTo handler
...
handler:
End Function"

For the non-coders, this basically means if an error occurs go to the handler routine to handle it. The developer is supposed to put some code there to deal with the error, typically by displaying a message and/or logging it to a file, but in this case the 'handler' just ends the function and sweeps the error under the carpet. End users probably thought the program was brilliant as it never ever showed a single error message but behind the scenes all sorts of invisible untraceable errors were occurring and debugging was an absolute nightmare.


So that's my own personal round up of the truly terrible error messages I've encountered over the years, but what about you, the readers? Do you have any examples of bad or amusing messages? Please feel free to share them below.

No comments:

Post a Comment