AmigaDOS Error Codes

dos.library functions report errors via IoErr() (also stored in pr_Result2 of the Process structure). This article is a complete reference to the error codes with their numeric values and meanings. Source: Ralph Babel's The Amiga Guru Book (1993, Ch. 18).

Note: Codes marked † are obsolete or never generated under Kickstart 2.0+. The + marker indicates codes introduced or made functional in V36+. Constants are defined in dos/dos.h.

Argument errors (103-122)

Code Constant Meaning
103 ERROR_NO_FREE_STORE Not enough memory (fragmentation possible)
105 † ERROR_TASK_TABLE_FULL Process table full (obsolete; V2.0 unlimited CLIs)
114 + ERROR_BAD_TEMPLATE Invalid ReadArgs() template or ParsePattern() pattern
115 + ERROR_BAD_NUMBER Malformed /N argument or out-of-range parameter
116 + ERROR_REQUIRED_ARG_MISSING Missing required /A argument
117 + ERROR_KEY_NEEDS_ARG Value missing after a template keyword
118 + ERROR_TOO_MANY_ARGS Wrong number of arguments (no /M template)
119 + ERROR_UNMATCHED_QUOTES Unmatched quotation marks (actually returns 120)
120 + ERROR_LINE_TOO_LONG Argument line invalid or too long
121 † ERROR_FILE_NOT_OBJECT File not a load module (V2.0 uses 212/235 instead)
122 † ERROR_INVALID_RESIDENT_LIBRARY Invalid resident library (V2.0 returns 235 instead)

Object and device errors (201-226)

Code Constant Meaning
201 † ERROR_NO_DEFAULT_DIR No default directory (presumably a Tripos relic; never generated)
202 ERROR_OBJECT_IN_USE Object is being accessed; cannot delete/modify
203 ERROR_OBJECT_EXISTS Object already exists (e.g. rename destination)
204 ERROR_DIR_NOT_FOUND Directory not found (used by Dir command, not OS)
205 ERROR_OBJECT_NOT_FOUND File or directory does not exist
206 ERROR_BAD_STREAM_NAME Invalid console/window name (stream handler)
207 ERROR_OBJECT_TOO_LARGE File or directory too large (no inherent limit in native FS)
209 ERROR_ACTION_NOT_KNOWN Packet/handler operation not implemented
210 ERROR_INVALID_COMPONENT_NAME Invalid path name (empty, contains colon/control chars)
211 ERROR_INVALID_LOCK Bad lock pointer, wrong handler, or already freed
212 ERROR_OBJECT_WRONG_TYPE Wrong object type (e.g. Open() on a directory)
213 ERROR_DISK_NOT_VALIDATED Disk not validated yet; wait or check ID_VALIDATED
214 ERROR_DISK_WRITE_PROTECTED Volume is write-protected
215 ERROR_RENAME_ACROSS_DEVICES Cannot rename across different filesystems
216 ERROR_DIRECTORY_NOT_EMPTY Directory still contains entries
217 ERROR_TOO_MANY_LEVELS Too many symlink indirections (soft-link loop)
218 ERROR_DEVICE_NOT_MOUNTED Device not mounted
219 ERROR_SEEK_ERROR Seek beyond file bounds or other seek failure
220 ERROR_COMMENT_TOO_BIG Comment exceeds 79 characters
221 ERROR_DISK_FULL Partition full
222 ERROR_DELETE_PROTECTED Object has delete protection set
223 ERROR_WRITE_PROTECTED Object has write protection set (FFS/ROM filesystem)
224 ERROR_READ_PROTECTED Object has read protection set (FFS only)
225 ERROR_NOT_A_DOS_DISK Not an AmigaDOS disk (wrong format)
226 ERROR_NO_DISK No disk in drive

System and loader errors (232-305)

Code Constant Meaning
232 ERROR_NO_MORE_ENTRIES ExNext() has reached the end of the directory
234 ERROR_OBJECT_LINKED Object is a link (circular reference)
235 ERROR_BAD_HUNK Load module is ill-formed (bad hunk type; see Hunk Binary Format)
236 ERROR_NOT_IMPLEMENTED Function not implemented
241 ERROR_LOCK_COLLISION Lock collision (deadlock avoidance)
242 ERROR_LOCK_TIMEOUT Lock timed out
243 ERROR_UNLOCK_ERROR Error during UnLock()
303 ERROR_BUFFER_OVERFLOW Buffer too small for result
304 ERROR_BREAK User break (Ctrl-C / SIGBREAKF_CTRL_C)
305 ERROR_NOT_EXECUTABLE File is not executable (no E flag or not a load module)

Using error codes

LONG err = IoErr();
if (err) {
    PrintFault(err, "MyProgram");  /* prints "MyProgram: <error text>" */
}

Fault() converts a code to a human-readable string. SetIoErr() sets the return value for the next IoErr() call (useful for custom handlers). The Why CLI command prints the textual description of the last error.

Obsolescence note: Some codes (105, 121, 122, 201) were never generated under V36+ or were replaced by newer codes. They are retained for compatibility.

See Also


Sources: Ralph Babel, "The Amiga Guru Book" (Taunusstein, 1993), Chapter 18 — AmigaDOS Error Codes. Raw: raw/rkm/guru-book.md Updated: 2026-08-08