Here are some weird error messages and the mistakes that cause them.
In the mid-1980s I worked for a company that had licensed the source code for the 4.2BSD-derived Sun-3 kernel. One of us noticed the following in the VM system:
panic("Shannon and Bill say this can't happen.");
To the best of my knowledge it never did, though.
Around 1980, I worked at the European Space Centre in Darmstadt Germany. The Director always insisted on doing demos for visitors himself and always ended up down a path that should not be visited except for maintenance. The senior developer then always quietly dug him out and set him up where he should have been.
When the director left, the Senior developer added in a message at this point which said "That F***er Bill Bloggs is driving this system down a dead end again."
Well, the Director had gone to Paris, to become the Director of the whole of ESRO. As such, he now entertained visitors at the highest level only. So when he brought one to Darmstadt, he insisted on the usual. The visitor was very impressed, because it seemed to know the Director's name, despite the fact he was using someone else's login.
"Word cannot edit the unknown." ca. 1999
I remember working on a DEC PDP-10 in the 70s, using its text editor, TECO. Creating a file was done using the "make" directive. The author of TECO dated him/herself by responding to:
The classic UNIX examples:
cannot make love. stop.
%got a light?
%^what is saccharine (not sure if I'm spelling that right?)
%man: why did you get a divorce?
man:: too many arguments
$"how would you rate Bush's incompetence
Excuse me if my UNIX is bad, I have a PC...
OPE ILLEGAL FILE NAME
Literally this means that an illegal file name was passed to the CDC6000 system. (OPE is the program that handles opening files.) In fact it means that a Fortran subroutine was called with one too many arguments and that the extra argument was a floating point number between .25 and .5. The exponent field of such numbers just happen to spell "OPE" in CDC display code so when the Fortran subroutine linkage code wrote the excess argument into word zero (indirecting through a zero pointer) the operating system interpreted the number as a request to run the OPE routine.
Cauldwell zero five dee tandem ... You have reached a Bell South precompletion termination. If you require activation of this service please contact your Bell South provisioning interface for turn up.
I actually kinda understand what this message says but it has nothing to do with the fact that my old college roommate had his area code changed. -- WardCunningham
GOD DOES NOT EXIST
VME operating system (on an ICL mainframe) upon finding the characters "god" in a place where it tried to treat them as a filename.
I was always a fan of "Error: An error has occurred." But a DouglasAdams
sort of laugh came over me when I read, "Error: No error."
A variation seen recently in a Windows app: "Error: The operation completed successfully."
Talking of Mac fan DouglasAdams
, another variation: "An error occurred because an error occurred" - MacOS 7.5.
- The Windows thing can be partially explained. When a function fails it returns an invalid result such as INVALID_HANDLE_VALUE. Then you're supposed to immediately call GetLastError to get the error code, then call FormatMessage to produce it as text. You can then put the text in a MessageBox. However, if you accidentally allow any Win32 call to intervene between the failed function call and GetLastError, and the intervening function does not err, then GetLastError will return ERROR_SUCCESS, which means there was no error, and FormatMessage will return "The operation completed successfully." So the bug is, that somebody allowed a win32 function call to intervene between the failed function and GetLastError. -- EdwardKiser
- This actually can happen for real as well - there are API functions I've run across that will return failure but, in some cases, don't SetLastError?. Another somewhat common cause is when people a generic error routine is called, which displays an error message using GetLastError?, when the actual error was in DirectX or COM or something which doesn't SetLastError? but instead expects you to use the return value as the error code.
A fellow programmer once showed me a fatal error dialog in his application. It said something like, "Fatal error, cannot save. All work will be lost." with the typical "OK" button. After I jokingly remarked that it was not the least bit OK, he changed the button to read "Oh, well."
That reminds me of the error I used to get in MSDOS 6 with DoubleSpace?
"Disk full error reading from drive C". Reading?
That one's not too surprising - DoubleSpace? works by compressing files you haven't used in a while, and decompressing them when you want to access them. So what's happening is that there wasn't enough space left to decompress the file so that you could read it. -- GavinLambert
As a math major, I found the MS error "The ordinal 25 could not be located in the dynamic link library foo
.dll" a little frightening. First they came for the ordinal numbers, then they came for the cardinal numbers...
Many recent (GUI) examples can be found at http://homepage.mac.com/bradster/iarchitect/errormsg.htm
The rest of the InterfaceHallOfShame
is fun to read too: http://homepage.mac.com/bradster/iarchitect/shame.htm
) personal "favorite" error story comes from the COBOL compiler on a Honeywell 200-series computer used for exercises in a computer programming class I taught in the early 70s - yes, I'm dating myself horribly! (As an aside, that computer also supported the administrative functions of the school and all of the programming classes, with only 8K characters [!] of memory, a far cry from current environments that require one or two thousand times that much just to boot.)
After placing the source deck in the card reader, mounting three scratch tapes and bootstrapping the compiler from the remaining tape drive (octal keys, hard boot of the CPU... the whole nine yards), the system slurped the entire source deck, spun tapes, blinked lights, and then produced a one-line compiler printout:
"FATAL ERROR: Missing division or section name."
Of course, this required manual inspection of the entire source deck to try to locate the little card that wasn't there! You other greybeards will remember the trick of tilting the deck and riffling the top edges to expose the "interpreted" (printed, eye-readable) content of each card just below the top edge. In this case, all appeared correct. After several inspections and re-attempts to compile, we concluded that there must be a registration mismatch between the cards and the card reader (a not-unheard-of phenomenon in those days). After reproducing the entire deck on a nearby deluxe Univac electronic interpreting reader/keypunch, we got the same error message. One more tilt-and-riffle exposed A BLANK CARD in the deck - the missing section name!
The root cause was found to be a previous reproduction of the entire deck on a faulty device that had interpreted (printed on) that card, but failed to punch any holes in it.
A great one is from back when Netcom had their own client software to get on the net. When browsing the web through their browser one would sometimes be presented with the "Oops. You're screwed." dialog box, containing just an "OK" button. Clicking "OK" killed the client, your connection, and most often the computer.
The wonderful CornerStone
database had the error
Your relationships are fraught with circularity
had a BASIC interpreter which was line-number based. If you wanted to insert a line in between lines 3 & 4, you could 'renumber' all of the lines to make room for more. This could be abused:
> REN 10,-5
rather often when I try to do something with it. 0xDEADBEEF
I believe this has something to do with the CPU registers, which are initialized to 0xDEADBEEF for a reason unknown to me (most likely some chip engineer humor).
From the JargonFile
- /ded�beef/, n. The hexadecimal word-fill pattern for freshly allocated memory under a number of IBM environments, including the RS/6000. Some modern debugging tools deliberately fill freed memory with this value as a way of converting HeisenBugs into BohrBugs. As in Your program is DEADBEEF (meaning gone, aborted, flushed from memory); if you start from an odd half-word boundary, of course, you have BEEFDEAD. See also the anecdote under fool and dead beef attack.
DOS v3 had a great one:
Out of paper error on drive e:
Well, until I discovered they'd included paper-tape support for a large corporate user.
Also, an old PC of mine would give the following BIOS error if you booted it without the keyboard connected:
Keyboard failure error - press F1 to continue
For those people like me who were wondering "Why is this strange?",
- Have you wondered how to press F1 when there is no keyboard?
Plug a working keyboard and press F1?
Oh yeah. S.W.
Regards, Phil Crawley, firstname.lastname@example.org
Most modern Phoenix BIOSes also give this error. :))
I was fond of the Amiga "Guru Meditation Errors" that I saw whenever Amiga-OS crashed:
"Software failure. Press Left Mouse Button To Continue"
"Guru Meditation 0x00000234.53873001"
-- Chad Loder
Our high school used to have TRS-80 computers. They had exactly 2 error messages: "what?" and "how?".
what? meant a syntax error, and how? meant no syntax error, but some limit had been exceeded.
The thing is, these made more sense than most of the messages above! -- DougKing
Actually, there was a third error message, "sorry", to indicate out-of-memory.
Are you thinking of the Level II?
How can it be unknown? It knew there was an error!
The error which can be known is not the TrueError?.
I never figured out exactly how but it was occasionally possible to provoke windows 9x into saying
followed by an OK button.
It is probably a truncation for "Not enough memory to display full error message".
I once saw:
"Not enough memory to display the error m"
Every once in a while, when I quit IE a message will pop up, "Error: InternetExplorer
had unexpectedly quit." You know, since I just hit command-Q, it isn't unexpected to me.
Then there's the famous two error messages in the Unix V6 implementation of ed
Error message "?" (just the question mark) meant you did something wrong.
Error message "?io" (just those 3 characters) meant there was an I/O error and your data was probably lost (typically something simple like a disk being full).
Another set of error messages that were interesting were the Rand MH mail system "this program is broken and should not have gotten here" error messages.
There were two I remember. "Horse Puckey" and "Banana Pancakes". When I asked BruceBorden?
(main author of MH) about these, he said that this was because a more boring "contact your system support staff" message would be ignored by the user. Having a strange error message meant that he was much more likely to hear about it.
An error has occurred in this dialog.
Found in the server log on a (brand suppressed) application server:
[21/Jul/2003:10:25:29] INFO ( 376): CORE3282: stdout: [error occurred during error reporting]
Any good patterns on how to handle/prevent errors during error handling? Equivalent weirdness occurs on many systems.
Alas, no. We had a weird NullPointerException
that had us scratching our heads, until we figured out it was coming because the error-handling routine was trying to format the error message for i18n, but an important Locale variable hadn't been set (because of the original error which it was trying to report). Sigh...
- One simple thing people frequently overlook is complete UnitTests for the error handlers.
More of a "bad error message" than a "weird error message", but from gcc:
file foo:n: type specifier omitted for parameter
With the obligatory lack of information about just which parameter it is.
In the old Windows 3.1 days, you had to have 'win' in your autoexec.bat file,
or type 'win' on the command prompt. A colleague's PC responded:
You can not win with Windows. Type "lose" to start.
I remember getting the following error-message with RedHat
Kernel-panic: I have no root and I want to scream!
BTW this is from a short story and book title by Harlan Ellison, "I have no mouth and I must scream"
The most amusing error message I have ever seen was found when troubleshooting a backup application fault - the Event viewer message "A weird Error has occurred" was not particularly useful to me!
I can remember a NetBSD error message saying something like this: "Kernel panic! Man all lifeboats! Women and children first!"
This message was enough to let me know I had to kick the reset button, so it apparently did its job ;)
Early versions of FoxPro
had an error that popped up in a little red box when all else failed. It simply said, "Help!"
kernel once had an error message (which went to the kernel logfile) that said "f*cking Sun blows me" (it was in the NFS client; and the asterisk was not there). It eventually got removed, but not without much acrimony among some of the kernel hackers who cried "censorship" at the notion that they ought not to cause naughty words to appear in the logfile. (The Linux kernel still contains numerous profanities in the comments.)
Once apon a time, Linux also responded 'lp0 reported invalid error status (on fire, eh?)' when faced with unidentifiable printer port errors.
This is sort of homage on an old error "lpn on fire" from some spoolers when said printer was not responding.
no manual entry for woman
make: Don't know how to make 'fire'.
csh: No match.
NOTE: You'll need some CeeShell
I like the web server errors
500 Internal Server Error
While it's serving the error page fine
If you nuke the NSSwitch configuration in a certain way on a computer running the LinuxOperatingSystem
, and then do things that require the system to do a lookup of your userid, it will respond like this:
You don't exist. Go away.
The ODBC driver for Windows sometimes gives the "Member not found" error message. Cryptic, but the real fun starts in Polish localized version - the otherwise correct translation is ambiguous and is usually first understood as "Penis not found".
I was involved in writing some help text for some software running on an IBM AS/400. When a user pressed F1, they got application-specific help. When they pressed F1 from the help display, they got help about how to use the help display itself. If they then pressed F1 a third time, they simply got the following message:
You are beyond help.
"An internal error has occured: Cryptic error message H238
(Note: You have not done anything wrong) [OK]"
Disconnecting from Nortel VPN on my company's network, the following dialog appears:
"Disconnect North and South America?"
BLS18124I TITLE=JES2 SUBSYS=JES2 z/OS 1.4 MOD=HASJES20 CODE=$DIS DISASTROUS ERROR AT LABEL TIMERROR
Disastrous - now that's what I call a severity level! I suppose the usual 'fatal' or 'critical' wasn't ...severe... enough.
The web itself, considered as an application has prawned a wondrous of variety of error messages in the form of the 404 page missing facility. See http://www.plinko.net/404/
for a good collection of them.
ERROR: You have no value.
ERROR: You have no values.
In an earlier Visual FoxPro
there was an error message I don't recall exactly the error number, but it was something like that:
"Error 2017 while trying to report Error 2017"
I just found this one while playing with PVX Plus:
"Error #12: File does not exist (or already exists)"
Well, it's quite a challenge to overcome this one :-)
PHP expects T_PAAMAYIM_NEKUDOTAYIM
is Hebrew for "time", as in "occurence or iteration". Pa'amayim
is the dual form (Hebrew has singular, dual, and plural), hence, "two times" or simply "twice". Nekudah
means "dot". Nekudatayim
is likewise "two dots". (Note: It is misspelled as "nekudotayim"
, probably out of confusion with the plural, nekudot
). Pa'amayim nekudatayim
means "twice two dots"--the double colon ("::"), which in PhpLanguage
) is the scope resolution operator.
Why Hebrew? Because Zend, along with several key PHP devs, are Israeli.
Why is this a weird error message? Because it's misspelled, dumdum!