Undici exposes a variety of error objects that you can use to enhance your error handling.
You can find all the error objects inside the errors
key.
import { errors } from 'undici'
Error | Error Codes | Description |
---|---|---|
UndiciError |
UND_ERR |
all errors below are extended from UndiciError . |
ConnectTimeoutError |
UND_ERR_CONNECT_TIMEOUT |
socket is destroyed due to connect timeout. |
HeadersTimeoutError |
UND_ERR_HEADERS_TIMEOUT |
socket is destroyed due to headers timeout. |
HeadersOverflowError |
UND_ERR_HEADERS_OVERFLOW |
socket is destroyed due to headers' max size being exceeded. |
BodyTimeoutError |
UND_ERR_BODY_TIMEOUT |
socket is destroyed due to body timeout. |
ResponseStatusCodeError |
UND_ERR_RESPONSE_STATUS_CODE |
an error is thrown when throwOnError is true for status codes >= 400. |
InvalidArgumentError |
UND_ERR_INVALID_ARG |
passed an invalid argument. |
InvalidReturnValueError |
UND_ERR_INVALID_RETURN_VALUE |
returned an invalid value. |
RequestAbortedError |
UND_ERR_ABORTED |
the request has been aborted by the user |
ClientDestroyedError |
UND_ERR_DESTROYED |
trying to use a destroyed client. |
ClientClosedError |
UND_ERR_CLOSED |
trying to use a closed client. |
SocketError |
UND_ERR_SOCKET |
there is an error with the socket. |
NotSupportedError |
UND_ERR_NOT_SUPPORTED |
encountered unsupported functionality. |
RequestContentLengthMismatchError |
UND_ERR_REQ_CONTENT_LENGTH_MISMATCH |
request body does not match content-length header |
ResponseContentLengthMismatchError |
UND_ERR_RES_CONTENT_LENGTH_MISMATCH |
response body does not match content-length header |
InformationalError |
UND_ERR_INFO |
expected error with reason |
ResponseExceededMaxSizeError |
UND_ERR_RES_EXCEEDED_MAX_SIZE |
response body exceed the max size allowed |
SocketError
The SocketError
has a .socket
property which holds socket metadata:
interface SocketInfo {
localAddress?: string
localPort?: number
remoteAddress?: string
remotePort?: number
remoteFamily?: string
timeout?: number
bytesWritten?: number
bytesRead?: number
}
Be aware that in some cases the .socket
property can be null
.