Why can’t every error message in the world have a GUID? Every single one?
Seriously. How many times have you copied and pasted the text out of an error message so you could put it into Google1? How many times did you have to fiddle about with it, maybe to take your specific filename out of “Problem opening file wibble.foo: unexpected frobjab”2. Ever had an error message that was too long for Google3?
Then there’s the problem of overly generic errors, and overly generic product names. Finding out what’s going wrong when the error message is “Problem opening file” is difficult enough. Finding out what the problem is when you’re using an Apple product, say, called “Pages” or “Numbers” leaves you with a search so broad you have to get a lot cleverer before you track it down4.
So. Here’s my idea. Every error in the world has some kind of unique identifier. While it might be vaguely nice to make it human-friendly, I guess the most obvious option that springs to mind is a GUID. They’re alphanumeric, fairly Google-friendly, and easily generated under most every operating system5.
I can see some disadvantages here; you’re going to be presenting your users with cryptic error numbers like “3F2504E0-4F89-11D3-9A0C-0305E82C3301”. But, let’s face it, developers have been presenting users with cryptic error numbers since computers were invented. There are already whole websites devoted to tracking down what they mean.
And making error codes unique across all programs, across all developers and manufacturers has the huge advantage of making them easy to search for. I mean, that really is huge. People can look up their problems on the web in the sure knowledge that they were going to find actual pertinent information — even if it was only the reassurance that fifteen other people on the planet were having the same problem. It wouldn’t matter that the product name was something dumbly generic6. Search for the GUID, find the problem.
As software developers, we could tag our online knowledge bases with the GUIDs, so people could find our advice easily. Or we could search for our own problem GUIDs on the web, and find out how many people were having particular problems. In fact, the bigger the problem, the more information: if tons of people were having trouble, we could even do a Google Trends analysis on it.
Also, of course, if you do it cleverly, you could build the search into your error handling. Instead of presenting the user with a GUID, how about presenting them with a “Google This Problem” button? This is much less scary than specific technical error messages (which can get very scary indeed.)
As time goes on, and my intensely clever idea of GUID error messages spreads across the planet like wildfire7, software tools would start building it in. Create an error resource string in your program, and your program will generate you a GUID and handle presenting it to the user in whatever friendly way is en vogue this week.
Okay, so it’s not perfect. Some errors really are generic. Those catch-all error handlers that we never expect to get hit — which basically mean “Oooh, something bad happened, and I have no clue what it was” to us developers — will still be of limited help, as many different errors could have caused them. And I haven’t yet thought of how the bottom-feeding spamming scum that like to break every nice thing on the Internet would manage to abuse this particular problem, but I’m sure they’d try. But fundamentally, I think this could really help people out.
Not only that, but it wouldn’t actually require universal co-operation. It wouldn’t matter so much what type of unique identifier you generated, just as long as it was unique. If Microsoft use GUIDs, but I prefer the more webbish “com.gadflymind.error.braindead.12345”, then we can still find our errors and we still won’t clash with each other. You’ve just got to bear in mind the point of what you’re doing and make sure it’s something easy to search on.
So, there you have it. I think this idea could really work, and I keep on thinking of more ways it could be useful in connecting people with problems to people with solutions. With an error message on your screen, you could be just one click away from all the right resources to help you out, even if none of them existed at the time the problematic program was written…
Until then, we’ll just have to keep using whatever Google Hacks we’ve developed to find our problems.
1Well, those of you lucky enough to be able to copy text out of dialog boxes, anyway; I seem to remember Windows is a bit funny about things like that.
2Or, for those masters of the Google-foo, to turn it into “Problem opening file * unexpected frobjab”. Google wildcards are your friend.
3Not such a problem any more, luckily. As I found out from Slashdot myself while researching this post, Google have upped their search length limit from 10 words to 32 words. Hurrah!
4Note to self: Has anyone created a Google Custom Search that searches all the Mac advice sites and discussion forums?
5You can even go generate one yourself online, if you feel particularly geeky today.
6It wouldn’t surprise me if Apple’s next operating system was called “Operating System”…
7Sorry, I’ve not had my reality-inducing coffee yet this morning.