Normative ERRNO code table
← Prev | ↑ Chapter | Next → | Index | Symbols
Normative ERRNO code table
The integer value of ERRNO after a documented failure is normative
per the Autodesk "Error Codes Reference (AutoLISP)" table. The table
was first published in the AutoCAD 2015 ENU AutoLISP help (GUID
97327347-2A13-4CBC-BDBF-979C7F1CABD5) and has remained stable in
later releases (Autodesk no longer publishes a standalone code-list
page in the 2026 cloudhelp index, but the per-function pages still
reference these codes by number).
| Code | Meaning |
|---|---|
| 0 | No error / success |
| 1 | Invalid symbol-table name |
| 2 | Invalid entity or selection-set name |
| 3 | Exceeded maximum number of selection sets |
| 4 | Invalid selection set |
| 5 | Improper use of block definition |
| 6 | Improper use of xref |
| 7 | Object selection: pick failed |
| 8 | End of entity file |
| 9 | End of block definition file |
| 10 | Failed to find last entity |
| 11 | Illegal attempt to delete viewport object |
| 12 | Operation not allowed during PLINE |
| 13 | Invalid handle |
| 14 | Handles not enabled |
| 15 | Invalid arguments in coordinate transform request |
| 16 | Invalid space in coordinate transform request |
| 17 | Invalid use of deleted entity |
| 18 | Invalid table name |
| 19 | Invalid table function argument |
| 20 | Attempt to set a read-only variable |
| 21 | Zero value not allowed |
| 22 | Value out of range |
| 23 | Complex REGEN in progress |
| 24 | Attempt to change entity type |
| 25 | Bad layer name |
| 26 | Bad linetype name |
| 27 | Bad color name |
| 28 | Bad text style name |
| 29 | Bad shape name |
| 30 | Bad field for entity type |
| 31 | Attempt to modify deleted entity |
| 32 | Attempt to modify seqend subentity |
| 33 | Attempt to change handle |
| 34 | Attempt to modify viewport visibility |
| 35 | Entity on locked layer |
| 36 | Bad entity type |
| 37 | Bad polyline entity |
| 38 | Incomplete complex entity in block |
| 39 | Invalid block name field |
| 40 | Duplicate block flag fields |
| 41 | Duplicate block name fields |
| 42 | Bad normal vector |
| 43 | Missing block name |
| 44 | Missing block flags |
| 45 | Invalid anonymous block |
| 46 | Invalid block definition |
| 47 | Mandatory field missing |
| 48 | Unrecognized extended data (XDATA) type |
| 49 | Improper nesting of list in XDATA |
| 50 | Improper location of APPID field |
| 51 | Exceeded maximum XDATA size |
| 52 | Entity selection: null response |
| 53 | Duplicate APPID |
| 54 | Attempt to make or modify viewport entity |
| 55 | Attempt to make or modify an xref, xdef, or xdep |
| 56 | ssget filter: unexpected end of list |
| 57 | ssget filter: missing test operand |
| 58 | ssget filter: invalid opcode (-4) string |
| 59 | ssget filter: improper nesting or empty conditional clause |
| 60 | ssget filter: mismatched begin and end of conditional clause |
| 61 | ssget filter: wrong number of arguments in conditional |
| 62 | ssget filter: exceeded maximum nesting limit |
| 63 | ssget filter: invalid group code |
| 64 | ssget filter: invalid string test |
| 65 | ssget filter: invalid vector test |
| 66 | ssget filter: invalid real test |
| 67 | ssget filter: invalid integer test |
| 68 | Digitizer is not a tablet |
| 69 | Tablet is not calibrated |
| 70 | Invalid tablet arguments |
| 71 | ADS error: unable to allocate new result buffer |
| 72 | ADS error: null pointer detected |
| 73 | Cannot open executable file |
| 74 | Application is already loaded |
| 75 | Maximum number of applications already loaded |
| 76 | Unable to execute application |
| 77 | Incompatible version number |
| 78 | Unable to unload nested application |
| 79 | Application refused to unload |
| 80 | Application is not currently loaded |
| 81 | Not enough memory to load application |
| 82 | ADS error: invalid transformation matrix |
| 83 | ADS error: invalid symbol name |
| 84 | ADS error: invalid symbol value |
| 85 | AutoLISP/ADS operation prohibited while a dialog box |
Per Autodesk's note attached to the ERRNO sysvar entry, "ERRNO is
not always cleared to zero. Unless it is inspected immediately
after an AutoLISP function has reported an error, the error that
its value indicates may be misleading." ERRNO is reset to 0 on
the success path of every builtin that documents itself as
"sets ERRNO on failure"; an arbitrary other-builtin success leaves
the previous value in place.
The host implementation in clautolisp/autolisp-builtins-core
wires the matching set-autolisp-errno calls into the builtins
that Autodesk documents in the ERRNO sysvar entry's coupling
list (entget, entmake, entmod, entsel, findfile, load,
nentsel, open, read-line, ssget, ssname, tablet,
write-line, xdsize). Builtins outside that list – including
the entdel / entupd / entlast / entnext family – do not
touch ERRNO because Autodesk's documentation does not specify a
behaviour for them.