POSIX Error Codes

Erlang likes to throw POSIX error codes, here is a list of all possible error codes taken from Erlang documentation:

  • e2big – argument list too long
  • eacces – permission denied
  • eaddrinuse – address already in use
  • eaddrnotavail – cannot assign requested address
  • eadv – advertise error
  • eafnosupport – address family not supported by protocol family
  • eagain – resource temporarily unavailable
  • ealign – EALIGN
  • ealready – operation already in progress
  • ebade – bad exchange descriptor
  • ebadf – bad file number
  • ebadfd – file descriptor in bad state
  • ebadmsg – not a data message
  • ebadr – bad request descriptor
  • ebadrpc – RPC structure is bad
  • ebadrqc – bad request code
  • ebadslt – invalid slot
  • ebfont – bad font file format
  • ebusy – file busy
  • echild – no children
  • echrng – channel number out of range
  • ecomm – communication error on send
  • econnaborted – software caused connection abort
  • econnrefused – connection refused
  • econnreset – connection reset by peer
  • edeadlk – resource deadlock avoided
  • edeadlock – resource deadlock avoided
  • edestaddrreq – destination address required
  • edirty – mounting a dirty fs w/o force
  • edom – math argument out of range
  • edotdot – cross mount point
  • edquot – disk quota exceeded
  • eduppkg – duplicate package name
  • eexist – file already exists
  • efault – bad address in system call argument
  • efbig – file too large
  • ehostdown – host is down
  • ehostunreach – host is unreachable
  • eidrm – identifier removed
  • einit – initialization error
  • einprogress – operation now in progress
  • eintr – interrupted system call
  • einval – invalid argument
  • eio – I/O error
  • eisconn – socket is already connected
  • eisdir – illegal operation on a directory
  • eisnam – is a named file
  • el2hlt – level 2 halted
  • el2nsync – level 2 not synchronized
  • el3hlt – level 3 halted
  • el3rst – level 3 reset
  • elbin – ELBIN
  • elibacc – cannot access a needed shared library
  • elibbad – accessing a corrupted shared library
  • elibexec – cannot exec a shared library directly
  • elibmax – attempting to link in more shared libraries than system limit
  • elibscn – .lib section in a.out corrupted
  • elnrng – link number out of range
  • eloop – too many levels of symbolic links
  • emfile – too many open files
  • emlink – too many links
  • emsgsize – message too long
  • emultihop – multihop attempted
  • enametoolong – file name too long
  • enavail – not available
  • enet – ENET
  • enetdown – network is down
  • enetreset – network dropped connection on reset
  • enetunreach – network is unreachable
  • enfile – file table overflow
  • enoano – anode table overflow
  • enobufs – no buffer space available
  • enocsi – no CSI structure available
  • enodata – no data available
  • enodev – no such device
  • enoent – no such file or directory
  • enoexec – exec format error
  • enolck – no locks available
  • enolink – link has be severed
  • enomem – not enough memory
  • enomsg – no message of desired type
  • enonet – machine is not on the network
  • enopkg – package not installed
  • enoprotoopt – bad protocol option
  • enospc – no space left on device
  • enosr – out of stream resources or not a stream device
  • enosym – unresolved symbol name
  • enosys – function not implemented
  • enotblk – block device required
  • enotconn – socket is not connected
  • enotdir – not a directory
  • enotempty – directory not empty
  • enotnam – not a named file
  • enotsock – socket operation on non-socket
  • enotsup – operation not supported
  • enotty – inappropriate device for ioctl
  • enotuniq – name not unique on network
  • enxio – no such device or address
  • eopnotsupp – operation not supported on socket
  • eperm – not owner
  • epfnosupport – protocol family not supported
  • epipe – broken pipe
  • eproclim – too many processes
  • eprocunavail – bad procedure for program
  • eprogmismatch – program version wrong
  • eprogunavail – RPC program not available
  • eproto – protocol error
  • eprotonosupport – protocol not supported
  • eprototype – protocol wrong type for socket
  • erange – math result unrepresentable
  • erefused – EREFUSED
  • eremchg – remote address changed
  • eremdev – remote device
  • eremote – pathname hit remote file system
  • eremoteio – remote i/o error
  • eremoterelease – EREMOTERELEASE
  • erofs – read-only file system
  • erpcmismatch – RPC version is wrong
  • erremote – object is remote
  • eshutdown – cannot send after socket shutdown
  • esocktnosupport – socket type not supported
  • espipe – invalid seek
  • esrch – no such process
  • esrmnt – srmount error
  • estale – stale remote file handle
  • esuccess – Error 0
  • etime – timer expired
  • etimedout – connection timed out
  • etoomanyrefs – too many references
  • etxtbsy – text file or pseudo-device busy
  • euclean – structure needs cleaning
  • eunatch – protocol driver not attached
  • eusers – too many users
  • eversion – version mismatch
  • ewouldblock – operation would block
  • exdev – cross-domain link
  • exfull – message tables full
  • nxdomain – the hostname or domain name could not be found