Swoole Error Code

You can get the current error code with function swoole_last_error(). Optionally, you can translate the error code to be a error message with function swoole_strerror():

<?php
echo swoole_strerror(swoole_last_error(), 9) . PHP_EOL;
echo swoole_strerror(SWOOLE_ERROR_MALLOC_FAIL, 9) . PHP_EOL;

Linux Error Codes

Number  Error Code  Description
1   EPERM   Operation not permitted
2   ENOENT  No such file or directory
3   ESRCH   No such process
4   EINTR   Interrupted system call
5   EIO I/O error
6   ENXIO   No such device or address
7   E2BIG   Argument list too long
8   ENOEXEC Exec format error
9   EBADF   Bad file number
10  ECHILD  No child processes
11  EAGAIN  Try again
12  ENOMEM  Out of memory
13  EACCES  Permission denied
14  EFAULT  Bad address
15  ENOTBLK Block device required
16  EBUSY   Device or resource busy
17  EEXIST  File exists
18  EXDEV   Cross-device link
19  ENODEV  No such device
20  ENOTDIR Not a directory
21  EISDIR  Is a directory
22  EINVAL  Invalid argument
23  ENFILE  File table overflow
24  EMFILE  Too many open files
25  ENOTTY  Not a typewriter
26  ETXTBSY Text file busy
27  EFBIG   File too large
28  ENOSPC  No space left on device
29  ESPIPE  Illegal seek
30  EROFS   Read-only file system
31  EMLINK  Too many links
32  EPIPE   Broken pipe
33  EDOM    Math argument out of domain of func
34  ERANGE  Math result not representable
35  EDEADLK Resource deadlock would occur
36  ENAMETOOLONG    File name too long
37  ENOLCK  No record locks available
38  ENOSYS  Function not implemented
39  ENOTEMPTY   Directory not empty
40  ELOOP   Too many symbolic links encountered
42  ENOMSG  No message of desired type
43  EIDRM   Identifier removed
44  ECHRNG  Channel number out of range
45  EL2NSYNC    Level 2 not synchronized
46  EL3HLT  Level 3 halted
47  EL3RST  Level 3 reset
48  ELNRNG  Link number out of range
49  EUNATCH Protocol driver not attached
50  ENOCSI  No CSI structure available
51  EL2HLT  Level 2 halted
52  EBADE   Invalid exchange
53  EBADR   Invalid request descriptor
54  EXFULL  Exchange full
55  ENOANO  No anode
56  EBADRQC Invalid request code
57  EBADSLT Invalid slot
59  EBFONT  Bad font file format
60  ENOSTR  Device not a stream
61  ENODATA No data available
62  ETIME   Timer expired
63  ENOSR   Out of streams resources
64  ENONET  Machine is not on the network
65  ENOPKG  Package not installed
66  EREMOTE Object is remote
67  ENOLINK Link has been severed
68  EADV    Advertise error
69  ESRMNT  Srmount error
70  ECOMM   Communication error on send
71  EPROTO  Protocol error
72  EMULTIHOP   Multihop attempted
73  EDOTDOT RFS specific error
74  EBADMSG Not a data message
75  EOVERFLOW   Value too large for defined data type
76  ENOTUNIQ    Name not unique on network
77  EBADFD  File descriptor in bad state
78  EREMCHG Remote address changed
79  ELIBACC Can not access a needed shared library
80  ELIBBAD Accessing a corrupted shared library
81  ELIBSCN .lib section in a.out corrupted
82  ELIBMAX Attempting to link in too many shared libraries
83  ELIBEXEC    Cannot exec a shared library directly
84  EILSEQ  Illegal byte sequence
85  ERESTART    Interrupted system call should be restarted
86  ESTRPIPE    Streams pipe error
87  EUSERS  Too many users
88  ENOTSOCK    Socket operation on non-socket
89  EDESTADDRREQ    Destination address required
90  EMSGSIZE    Message too long
91  EPROTOTYPE  Protocol wrong type for socket
92  ENOPROTOOPT Protocol not available
93  EPROTONOSUPPORT Protocol not supported
94  ESOCKTNOSUPPORT Socket type not supported
95  EOPNOTSUPP  Operation not supported on transport endpoint
96  EPFNOSUPPORT    Protocol family not supported
97  EAFNOSUPPORT    Address family not supported by protocol
98  EADDRINUSE  Address already in use
99  EADDRNOTAVAIL   Cannot assign requested address
100 ENETDOWN    Network is down
101 ENETUNREACH Network is unreachable
102 ENETRESET   Network dropped connection because of reset
103 ECONNABORTED    Software caused connection abort
104 ECONNRESET  Connection reset by peer
105 ENOBUFS No buffer space available
106 EISCONN Transport endpoint is already connected
107 ENOTCONN    Transport endpoint is not connected
108 ESHUTDOWN   Cannot send after transport endpoint shutdown
109 ETOOMANYREFS    Too many references: cannot splice
110 ETIMEDOUT   Connection timed out
111 ECONNREFUSED    Connection refused
112 EHOSTDOWN   Host is down
113 EHOSTUNREACH    No route to host
114 EALREADY    Operation already in progress
115 EINPROGRESS Operation now in progress
116 ESTALE  Stale NFS file handle
117 EUCLEAN Structure needs cleaning
118 ENOTNAM Not a XENIX named type file
119 ENAVAIL No XENIX semaphores available
120 EISNAM  Is a named type file
121 EREMOTEIO   Remote I/O error
122 EDQUOT  Quota exceeded
123 ENOMEDIUM   No medium found
124 EMEDIUMTYPE Wrong medium type
125 ECANCELED   Operation Canceled
126 ENOKEY  Required key not available
127 EKEYEXPIRED Key has expired
128 EKEYREVOKED Key has been revoked
129 EKEYREJECTED    Key was rejected by service
130 EOWNERDEAD  Owner died
131 ENOTRECOVERABLE State not recoverable

Swoole Error Codes

Number  Error Code  Description
501 SWOOLE_ERROR_MALLOC_FAIL    malloc fail 
502 SWOOLE_ERROR_SYSTEM_CALL_FAIL       system call fail    
503 SWOOLE_ERROR_PHP_FATAL_ERROR        php fatal error 
504 SWOOLE_ERROR_NAME_TOO_LONG      name too long   
505 SWOOLE_ERROR_INVALID_PARAMS     invalid params  
506 SWOOLE_ERROR_QUEUE_FULL     queue full  
-           
700 SWOOLE_ERROR_FILE_NOT_EXIST     file not exist  
701 SWOOLE_ERROR_FILE_TOO_LARGE     file too large  
702 SWOOLE_ERROR_FILE_EMPTY     file empty  
703 SWOOLE_ERROR_DNSLOOKUP_DUPLICATE_REQUEST        dnslookup duplicate request 
704 SWOOLE_ERROR_DNSLOOKUP_RESOLVE_FAILED       dnslookup resolve failed    
705 SWOOLE_ERROR_DNSLOOKUP_RESOLVE_TIMEOUT      dnslookup resolve timeout   
706 SWOOLE_ERROR_BAD_IPV6_ADDRESS       bad ipv6 address    
707 SWOOLE_ERROR_UNREGISTERED_SIGNAL        unregistered signal 
-           
1001 SWOOLE_ERROR_SESSION_CLOSED_BY_SERVER      session closed by server    
1002 SWOOLE_ERROR_SESSION_CLOSED_BY_CLIENT      session closed by client    
1003 SWOOLE_ERROR_SESSION_CLOSING       session closing 
1004 SWOOLE_ERROR_SESSION_CLOSED        session closed  
1005 SWOOLE_ERROR_SESSION_NOT_EXIST     session not exist   
1006 SWOOLE_ERROR_SESSION_INVALID_ID        session invalid id  
1007 SWOOLE_ERROR_SESSION_DISCARD_TIMEOUT_DATA      session discard timeout data    
1008 SWOOLE_ERROR_OUTPUT_BUFFER_OVERFLOW        output buffer overflow  
1009 SWOOLE_ERROR_SSL_NOT_READY     ssl not ready   
1010 SWOOLE_ERROR_SSL_CANNOT_USE_SENFILE        ssl cannot use senfile  
1011 SWOOLE_ERROR_SSL_EMPTY_PEER_CERTIFICATE        ssl empty peer certificate  
1012 SWOOLE_ERROR_SSL_VEFIRY_FAILED     ssl vefiry failed   
1013 SWOOLE_ERROR_SSL_BAD_CLIENT        ssl bad client  
1014 SWOOLE_ERROR_SSL_BAD_PROTOCOL      ssl bad protocol    
-           
1201 SWOOLE_ERROR_PACKAGE_LENGTH_TOO_LARGE      package length too large    
1202 SWOOLE_ERROR_DATA_LENGTH_TOO_LARGE     data length too large   
-           
2001 SWOOLE_ERROR_TASK_PACKAGE_TOO_BIG      task package too big    
2002 SWOOLE_ERROR_TASK_DISPATCH_FAIL        task dispatch fail  
-           
3001 SWOOLE_ERROR_HTTP2_STREAM_ID_TOO_BIG       http2 stream id too big 
3002 SWOOLE_ERROR_HTTP2_STREAM_NO_HEADER        http2 stream no header  
3003 SWOOLE_ERROR_HTTP2_STREAM_NOT_FOUND        http2 stream not found  
-           
4001 SWOOLE_ERROR_AIO_BAD_REQUEST       Raio bad request    
4002 SWOOLE_ERROR_AIO_CANCELED      aio canceled    
-           
5001 SWOOLE_ERROR_CLIENT_NO_CONNECTION      client no connection    
5002 SWOOLE_ERROR_SOCKET_CLOSED     socket closed   
7001 SWOOLE_ERROR_SOCKS5_UNSUPPORT_VERSION      socks5 unsupport version    
7002 SWOOLE_ERROR_SOCKS5_UNSUPPORT_METHOD       socks5 unsupport method 
7003 SWOOLE_ERROR_SOCKS5_AUTH_FAILED        socks5 auth failed  
7004 SWOOLE_ERROR_SOCKS5_SERVER_ERROR       socks5 server error 
-           
8001 SWOOLE_ERROR_HTTP_PROXY_HANDSHAKE_ERROR        http proxy handshake error  
8002 SWOOLE_ERROR_HTTP_INVALID_PROTOCOL     http invalid protocol   
-           
8501 SWOOLE_ERROR_WEBSOCKET_BAD_CLIENT      websocket bad client    
8502 SWOOLE_ERROR_WEBSOCKET_BAD_OPCODE      websocket bad opcode    
8503 SWOOLE_ERROR_WEBSOCKET_UNCONNECTED     websocket unconnected   
8504 SWOOLE_ERROR_WEBSOCKET_HANDSHAKE_FAILED        websocket handshake failed  
-           
9001 SWOOLE_ERROR_SERVER_MUST_CREATED_BEFORE_CLIENT     server must created before client   
9002 SWOOLE_ERROR_SERVER_TOO_MANY_SOCKET        server too many socket  
9003 SWOOLE_ERROR_SERVER_WORKER_TERMINATED      server worker terminated    
9004 SWOOLE_ERROR_SERVER_INVALID_LISTEN_PORT        server invalid listen port  
9005 SWOOLE_ERROR_SERVER_TOO_MANY_LISTEN_PORT       server too many listen port 
9006 SWOOLE_ERROR_SERVER_PIPE_BUFFER_FULL       server pipe buffer full 
9007 SWOOLE_ERROR_SERVER_NO_IDLE_WORKER     server no idle worker   
9008 SWOOLE_ERROR_SERVER_ONLY_START_ONE     server only start one   
9009 SWOOLE_ERROR_SERVER_SEND_IN_MASTER     server send in master   
9010 SWOOLE_ERROR_SERVER_INVALID_REQUEST        server invalid request  
9011 SWOOLE_ERROR_SERVER_WORKER_EXIT_TIMEOUT        server worker exit timeout  
-           
10001 SWOOLE_ERROR_CO_OUT_OF_COROUTINE      coroutine out of coroutine  
10002 SWOOLE_ERROR_CO_HAS_BEEN_BOUND        coroutine has been bound    
10003 SWOOLE_ERROR_CO_MUTEX_DOUBLE_UNLOCK       coroutine mutex double unlock   
10004 SWOOLE_ERROR_CO_BLOCK_OBJECT_LOCKED       coroutine block object locked   
10005 SWOOLE_ERROR_CO_BLOCK_OBJECT_WAITING      coroutine block object waiting  
10006 SWOOLE_ERROR_CO_YIELD_FAILED      coroutine yield failed  
10007 SWOOLE_ERROR_CO_GETCONTEXT_FAILED     coroutine getcontext failed 
10008 SWOOLE_ERROR_CO_SWOOLEAPCONTEXT_FAILED        coroutine swapcontext failed    
10009 SWOOLE_ERROR_CO_MAKECONTEXT_FAILED        coroutine makecontext failed    
10010 SWOOLE_ERROR_CO_IOCPINIT_FAILED       coroutine iocpinit failed   
10011 SWOOLE_ERROR_CO_PROTECT_STACK_FAILED      coroutine protect stack failed  
10012 SWOOLE_ERROR_CO_STD_THREAD_LINK_ERROR     coroutine std thread link error 
10013 SWOOLE_ERROR_CO_DISABLED_MULTI_THREAD     coroutine disabled multi thread