"Abort, Retry, Fail?" (or "Abort, Retry, Ignore?") is an error message found in DOS operating systems, which prompts the end-user for a course of action to follow. The message has been cited as an example of poor usability in computer user interfaces.
In CP/M, attempting to read a floppy disk drive with the door open would hang until a disk was inserted and the disk drive door was closed (very early disk hardware did not send any kind of signal until a disk was spinning, and a timeout to detect the lack of signal required too much code on these tiny systems). Many users of CP/M became accustomed to this as a method of managing multiple disks, by opening the disk drive to stop a program from reading or writing a file until the correct disk could be inserted.
A primary design consideration for PC DOS was that software written for CP/M be portable to DOS without changes. Even the first IBM PC had hardware that told the operating system that the disk drive door was open, but returning an error to software trying to read the disk would break the ability to manage disks this way without such changes. Still, it was desirable to improve the experience, in particular by giving the user a way to get out of the hang without having to find a disk to insert in the drive. The prompt was invented for this reason.
A missing disk (or disk drive door opened) was defined by DOS as a "critical error" and would call the "critical error handler". The default "critical error handler" was part of COMMAND.COM and printed the "Abort, Retry, ..." prompt, then waited for user input. Other problems (in particular, a checksum error while reading data from a disk) were also defined as a "critical error", thus causing the prompt to appear for reasons other than a missing disk or opened disk drive. Users could press a key to indicate what they wanted to happen; available options included:
A program could install its own "critical error handler" while running, and many of the more sophisticated programs (in particular full screen programs) did so in order to avoid the messages disturbing the display. Some programs faked the missing "Fail" response in DOS 2.0 by jumping back to the calling program, skipping the return stack in DOS. This was a risky hack as it relied on the stack layout and skipped cleanup operations in the operating system.
The error messages has been described as being an example of poor user interface design. For most users, if the message appeared, the only choice was to hit 'R'--which repeated the message--or hit another letter, which caused the program to crash and all work to be lost. One scholar described it this way:
It has become an icon of poor interface design, because it led exactly nowhere . . . A veritable Catch 22, since the only viable option appeared to be to keep typing R until one was willing to accept that one's work was lost and there was nothing left to do but shut down the program and start anew.
Hard disks and larger removable media such as Zip drives made the need to manage multiple disks obsolete, and thus made the prompt useless. It was gradually replaced with code that acted like "Fail" immediately. DOS 3.3 COMMAND.COM provided the startup option
/F in order to force the default critical error handler to return "Fail" on all errors. Starting with version 4.0, the alternative command line processors 4DOS and NDOS supported
/F and the corresponding
CritFail=Yes directive in
NDOS.INI as well. The option was also supported by the COMMAND.COM of PTS-DOS 6.51 and S/DOS 1.0, as well as by DR-DOS 7.02 and higher. OpenDOS 7.01, COMMAND.COM provides a similar feature with
/N (described as "do not install a critical error handler") which is still supported in newer versions. Most other operating systems, such as Linux, always act like "Fail" in all cases.
As of 2017Windows 10 can still generate a similar prompt, although in a dialog box and with a more comprehensive error message. The choices are similar but renamed: "Cancel" (to the user this is similar to "Abort" but technically it is a "Fail" with a different error code), "Try Again" (instead of "Retry") and "Continue" (instead of "Fail"). This may be supported by the drivers for some removable media when a file is opened with a full volume name or the disk is removed while the file is open. However for mundane actions similar to what triggered the prompt in DOS, such as attempting to read "E:" when there is no disk in the CD drive, Windows produces an immediate "Fail".
Humorous variations of Edgar Allen Poe's The Raven using "Abort, Retry, Ignore?" in place of "nevermore" were written in the 1980s and 1990s and were quite popular, distributed by bulletin board and email. The original and best known version has been credited to Cleveland poet Marcus Bales. It has been adapted numerous times, attributed to Anonymous, Lucy Blades, Rob Collins, and others.