Skip to content
D
Documentation

HTTPError

reference
1 min readUpdated

Import it from ky.

Error thrown when the response has a non-2xx status code and throwHttpErrors is enabled.

The error has a response property with the Response object, a request property with the Request object, an options property with the normalized options (either passed to ky when creating an instance with ky.create() or directly when performing the request), and a data property with the pre-parsed response body. For JSON responses (based on Content-Type), the body is parsed using the parseJson option if set, or JSON.parse by default. For other content types, it is set as plain text. If the body is empty, unreadable, too large, parsing fails, or the error-data read/parse timeout is reached, data will be undefined. To avoid hanging or excessive buffering, error.data body reads and async JSON parsing are bounded by the request timeout (or 10 seconds when timeout is disabled), any remaining totalTimeout budget, and a 10 MiB response body size limit. If maxResponseSize is exceeded while populating error.data, Ky throws ResponseSizeError instead of HTTPError. If totalTimeout expires while populating error.data, Ky throws TimeoutError instead of HTTPError. The data property is populated before beforeError hooks run, so hooks can access it.

The response body is automatically consumed when populating error.data, so error.response.json() and other body methods will not work. Use error.data instead. The error.response object is still available for headers, status, etc.

Be aware that some types of errors, such as network errors, inherently mean that a response was not received. In that case, the error will be an instance of NetworkError instead of HTTPError and will not contain a response property.

ts
class HTTPError<T = unknown> extends KyError

Properties

NameTypeDefaultDescription
name'HTTPError'
responseKyResponse<T>
requestKyRequest
optionsReadonly<NormalizedOptions>
dataT | string | undefined
messagestring
stack?string

Methods

  • constructor(response: Response, request: Request, options: Readonly<NormalizedOptions>)

Was this page helpful?

HTTPError — ky · GPT-6 Luna