Naming Prosecution Mitigator

    error-types

    1.0.2 • Public • Published

    error-types

    List of common errors for RESTful API

    When you implement a RESTful endpoint in Node.js you have to handle the error in response. This library give you a representation of common restful error. In particular they are mapped in an object through an index code as reported below in documentation. For every error you have thi data:

    • code
    • statusText
    • HTTPStatusCode
    • description

    Installation

    If you want use error-types you have to install it. There are two methods for that: In your package.json add the following item:

    "error-types""version"

    then digit

    npm install

    Example:

    "error-types""*" for the latest version
    "error-types""1.0.0" for the version 1.0.0

    OR

    launch this command:

    npm install error-types --save

    Usage

    After installed error-types library you can obtain an object that is a representation of one of the common restful error as reported below:

    'use strict';
    var errorTypes = require('error-types');
    // I want Internal Server Error
    console.log(errorTypes.INTERNAL_SERVER_ERROR); 
    /**
     * Output:
     *  { 
     *    code: 'INTERNAL_SERVER_ERROR',
     *    statusText: 'Internal Server Error',
     *    HTTPStatusCode: 500,
     *    description: 'The server encountered an unexpected condition which prevented it from fulfilling the request.' 
     *  }
     */

    Below is reported the list of errors and their descriptions that are currently maneged by the error-types

    Errors

    BAD_REQUEST

    Status code Error name Error type Reference
    400 Bad Request BAD_REQUEST RFC7231, Section 6.5.1
    Description:

    The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the request without modifications.

    UNAUTHORIZED

    Status code Error name Error type Reference
    401 Unauthorized UNAUTHORIZED RFC7235, Section 3.1
    Description:

    The request requires user authentication. The response MUST include a WWW-Authenticate header field containing a challenge applicable to the requested resource. The client MAY repeat the request with a suitable Authorization header field. If the request already included Authorization credentials, then the 401 response indicates that authorization has been refused for those credentials. If the 401 response contains the same challenge as the prior response, and the user agent has already attempted authentication at least once, then the user SHOULD be presented the entity that was given in the response, since that entity might include relevant diagnostic information.

    FORBIDDEN

    Status code Error name Error type Reference
    403 Forbidden FORBIDDEN RFC7231, Section 6.5.3
    Description:

    The server understood the request, but is refusing to fulfill it. Authorization will not help and the request SHOULD NOT be repeated. If the request method was not HEAD and the server wishes to make public why the request has not been fulfilled, it SHOULD describe the reason for the refusal in the entity. If the server does not wish to make this information available to the client, the status code 404 (Not Found) can be used instead.

    NOT_FOUND

    Status code Error name Error type Reference
    404 Not Found NOT_FOUND RFC7231, Section 6.5.4
    Description:

    The server has not found anything matching the Request-URI. No indication is given of whether the condition is temporary or permanent. The 410 (Gone) status code SHOULD be used if the server knows, through some internally configurable mechanism, that an old resource is permanently unavailable and has no forwarding address. This status code is commonly used when the server does not wish to reveal exactly why the request has been refused, or when no other response is applicable.

    METHOD_NOT_ALLOWED

    Status code Error name Error type Reference
    405 Method Not Allowed METHOD_NOT_ALLOWED RFC7231, Section 6.5.5
    Description:

    The method specified in the Request-Line is not allowed for the resource identified by the Request-URI. The response MUST include an Allow header containing a list of valid methods for the requested resource.

    NOT_ACCEPTABLE

    Status code Error name Error type Reference
    406 Not Acceptable NOT_ACCEPTABLE RFC7231, Section 6.5.6
    Description:

    The resource identified by the request is only capable of generating response entities which have content characteristics not acceptable according to the accept headers sent in the request.

    PROXY_AUTHENTICATION_REQUIRED

    Status code Error name Error type Reference
    407 Proxy Authentication Required PROXY_AUTHENTICATION_REQUIRED RFC7235, Section 3.2
    Description:

    This code is similar to 401 (Unauthorized), but indicates that the client must first authenticate itself with the proxy. The proxy MUST return a Proxy-Authenticate header field containing a challenge applicable to the proxy for the requested resource. The client MAY repeat the request with a suitable Proxy-Authorization header field.

    REQUEST_TIMEOUT

    Status code Error name Error type Reference
    408 Request Timeout REQUEST_TIMEOUT RFC7231, Section 6.5.7
    Description:

    The client did not produce a request within the time that the server was prepared to wait. The client MAY repeat the request without modifications at any later time.

    CONFLICT

    Status code Error name Error type Reference
    409 Conflict CONFLICT RFC7231, Section 6.5.8
    Description:

    The request could not be completed due to a conflict with the current state of the resource. This code is only allowed in situations where it is expected that the user might be able to resolve the conflict and resubmit the request. The response body SHOULD include enough information for the user to recognize the source of the conflict. Ideally, the response entity would include enough information for the user or user agent to fix the problem; however, that might not be possible and is not required.

    GONE

    Status code Error name Error type Reference
    410 Gone GONE RFC7231, Section 6.5.9
    Description:

    The requested resource is no longer available at the server and no forwarding address is known. This condition is expected to be considered permanent. Clients with link editing capabilities SHOULD delete references to the Request-URI after user approval. If the server does not know, or has no facility to determine, whether or not the condition is permanent, the status code 404 (Not Found) SHOULD be used instead. This response is cacheable unless indicated otherwise.

    LENGTH_REQUIRED

    Status code Error name Error type Reference
    411 Length Required LENGTH_REQUIRED RFC7231, Section 6.5.10
    Description:

    The server refuses to accept the request without a defined Content- Length. The client MAY repeat the request if it adds a valid Content-Length header field containing the length of the message-body in the request message.

    PRECONDITION_FAILED

    Status code Error name Error type Reference
    412 Precondition Failed PRECONDITION_FAILED RFC7232, Section 4.2
    Description:

    The precondition given in one or more of the request-header fields evaluated to false when it was tested on the server. This response code allows the client to place preconditions on the current resource metainformation (header field data) and thus prevent the requested method from being applied to a resource other than the one intended.

    REQUEST_ENTITY_TOO_LARGE

    Status code Error name Error type Reference
    413 Request Entity Too Large REQUEST_ENTITY_TOO_LARGE RFC7231, Section 6.5.11
    Description:

    The server is refusing to process a request because the request entity is larger than the server is willing or able to process. The server MAY close the connection to prevent the client from continuing the request.

    REQUEST_URI_TOO_LONG

    Status code Error name Error type Reference
    414 Request-URI Too Long REQUEST_URI_TOO_LONG RFC7231, Section 6.5.12
    Description:

    The server is refusing to service the request because the Request-URI is longer than the server is willing to interpret. This rare condition is only likely to occur when a client has improperly converted a POST request to a GET request with long query information, when the client has descended into a URI black hole of redirection (e.g., a redirected URI prefix that points to a suffix of itself), or when the server is under attack by a client attempting to exploit security holes present in some servers using fixed-length buffers for reading or manipulating the Request-URI.

    UNSUPPORTED_MEDIA_TYPE

    Status code Error name Error type Reference
    415 Unsupported Media Type UNSUPPORTED_MEDIA_TYPE RFC7231, Section 6.5.13
    Description:

    The server is refusing to service the request because the entity of the request is in a format not supported by the requested resource for the requested method.

    REQUESTED_RANGE_NOT_SATISFIABLE

    Status code Error name Error type Reference
    416 Requested Range Not Satisfiable REQUESTED_RANGE_NOT_SATISFIABLE RFC7233, Section 4.4
    Description:

    A server SHOULD return a response with this status code if a request included a Range request-header field, and none of the range-specifier values in this field overlap the current extent of the selected resource, and the request did not include an If-Range request-header field. (For byte-ranges, this means that the first- byte-pos of all of the byte-range-spec values were greater than the current length of the selected resource.) When this status code is returned for a byte-range request, the response SHOULD include a Content-Range entity-header field specifying the current length of the selected resource. This response MUST NOT use the multipart/byteranges content-type.

    EXPECTATION_FAILED

    Status code Error name Error type Reference
    417 Expectation Failed EXPECTATION_FAILED RFC7231, Section 6.5.14
    Description:

    The expectation given in an Expect request-header field could not be met by this server, or, if the server is a proxy, the server has unambiguous evidence that the request could not be met by the next-hop server.

    I_AM_A_TEAPOT

    Status code Error name Error type Reference
    418 I'm a teapot (RFC 2324) I_AM_A_TEAPOT No reference
    Description:

    This code was defined in 1998 as one of the traditional IETF April Fools' jokes, in RFC 2324, Hyper Text Coffee Pot Control Protocol, and is not expected to be implemented by actual HTTP servers.

    ENHANCE_YOUR_CALM

    Status code Error name Error type Reference
    420 Enhance Your Calm ENHANCE_YOUR_CALM No reference
    Description:

    Returned by the API endpoint when the client is being rate limited. Likely a reference to this number's association with marijuana. Other services may wish to implement the 429 Too Many Requests response code instead.

    UNPROCESSABLE_ENTITY

    Status code Error name Error type Reference
    422 Unprocessable Entity UNPROCESSABLE_ENTITY RFC4918
    Description:

    The 422 - Unprocessable Entity status code means the server understands the content type of the request entity (hence a 415 - Unsupported Media Type status code is inappropriate), and the syntax of the request entity is correct (thus a 400 - Bad Request status code is inappropriate) but was unable to process the contained instructions. For example, this error condition may occur if an XML request body contains well-formed (i.e., syntactically correct), but semantically erroneous, XML instructions.

    LOCKED

    Status code Error name Error type Reference
    423 Locked (WebDAV) LOCKED RFC4918
    Description:

    The 423 (Locked) status code means the source or destination resource of a method is locked. This response SHOULD contain an appropriate precondition or postcondition code, such as 'lock-token-submitted' or 'no-conflicting-lock'.

    FAILED_DEPENDENCY

    Status code Error name Error type Reference
    424 Failed Dependency (WebDAV) FAILED_DEPENDENCY RFC4918
    Description:

    The 424 (Failed Dependency) status code means that the method could not be performed on the resource because the requested action depended on another action and that action failed.

    RESERVED_FOR_WEBDAV

    Status code Error name Error type Reference
    425 Reserved for WebDAV RESERVED_FOR_WEBDAV No reference
    Description:

    Defined in drafts of WebDAV Advanced Collections Protocol, but not present in Web Distributed Authoring and Versioning (WebDAV) Ordered Collections Protocol.

    UPGRADE_REQUIRED

    Status code Error name Error type Reference
    426 Upgrade Required UPGRADE_REQUIRED RFC7231, Section 6.5.15
    Description:

    Reliable, interoperable negotiation of Upgrade features requires an unambiguous failure signal. The 426 Upgrade Required status code allows a server to definitively state the precise protocol extensions a given resource must be served with.

    PRECONDITION_REQUIRED

    Status code Error name Error type Reference
    428 Precondition Required PRECONDITION_REQUIRED RFC6585
    Description:

    The origin server requires the request to be conditional. Intended to prevent the LOST UPDATE PROBLEM, where a client GETs a resource's state, modifies it, and PUTs it back to the server, when meanwhile a third party has modified the state on the server, leading to a conflict.

    TOO_MANY_REQUESTS

    Status code Error name Error type Reference
    429 Too Many Requests TOO_MANY_REQUESTS RFC6585
    Description:

    The 429 status code indicates that the user has sent too many requests in a given amount of time (rate limiting). The response representations SHOULD include details explaining the condition, and MAY include a Retry-After header indicating how long to wait before making a new request.

    REQUEST_HEADER_FIELDS_TOO_LARGE

    Status code Error name Error type Reference
    431 Request Header Fields Too Large REQUEST_HEADER_FIELDS_TOO_LARGE RFC6585
    Description:

    The 431 status code indicates that the server is unwilling to process the request because its header fields are too large. The request MAY be resubmitted after reducing the size of the request header fields.

    NO_RESPONSE

    Status code Error name Error type Reference
    444 No Response NO_RESPONSE No reference
    Description:

    The server returns no information to the client and closes the connection (useful as a deterrent for malware).

    RETRY_WITH

    Status code Error name Error type Reference
    449 Retry With (Microsoft) RETRY_WITH No reference
    Description:

    A Microsoft extension. The request should be retried after performing the appropriate action.

    BLOCKED_BY_WINDOWS_PARENTAL_CONTROLS

    Status code Error name Error type Reference
    450 Blocked by Windows Parental Controls (Microsoft) BLOCKED_BY_WINDOWS_PARENTAL_CONTROLS No reference
    Description:

    A Microsoft extension. This error is given when Windows Parental Controls are turned on and are blocking access to the given webpage.

    CLIENT_CLOSED_REQUEST

    Status code Error name Error type Reference
    499 Client Closed Request CLIENT_CLOSED_REQUEST No reference
    Description:

    This code is introduced to log the case when the connection is closed by client while HTTP server is processing its request, making server unable to send the HTTP header back.

    INTERNAL_SERVER_ERROR

    Status code Error name Error type Reference
    500 Internal Server Error INTERNAL_SERVER_ERROR RFC7231, Section 6.6.1
    Description:

    The server encountered an unexpected condition which prevented it from fulfilling the request.

    NOT_IMPLEMENTED

    Status code Error name Error type Reference
    501 Not Implemented NOT_IMPLEMENTED RFC7231, Section 6.6.2
    Description:

    The server does not support the functionality required to fulfill the request. This is the appropriate response when the server does not recognize the request method and is not capable of supporting it for any resource.

    BAD_GATEWAY

    Status code Error name Error type Reference
    502 Bad Gateway BAD_GATEWAY RFC7231, Section 6.6.3
    Description:

    The server, while acting as a gateway or proxy, received an invalid response from the upstream server it accessed in attempting to fulfill the request.

    SERVICE_UNAVAILABLE

    Status code Error name Error type Reference
    503 Service Unavailable SERVICE_UNAVAILABLE RFC7231, Section 6.6.4
    Description:

    The server is currently unable to handle the request due to a temporary overloading or maintenance of the server. The implication is that this is a temporary condition which will be alleviated after some delay. If known, the length of the delay MAY be indicated in a Retry-After header. If no Retry-After is given, the client SHOULD handle the response as it would for a 500 response.

    GATEWAY_TIMEOUT

    Status code Error name Error type Reference
    504 Gateway Timeout GATEWAY_TIMEOUT RFC7231, Section 6.6.5
    Description:

    The server, while acting as a gateway or proxy, did not receive a timely response from the upstream server specified by the URI (e.g. HTTP, FTP, LDAP) or some other auxiliary server (e.g. DNS) it needed to access in attempting to complete the request.

    HTTP_VERSION_NOT_SUPPORTED

    Status code Error name Error type Reference
    505 HTTP Version Not Supported HTTP_VERSION_NOT_SUPPORTED RFC7231, Section 6.6.6
    Description:

    The server does not support, or refuses to support, the HTTP protocol version that was used in the request message. The server is indicating that it is unable or unwilling to complete the request using the same major version as the client, as described in section 3.1, other than with this error message. The response SHOULD contain an entity describing why that version is not supported and what other protocols are supported by that server.

    VARIANT_ALSO_NEGOTIATES

    Status code Error name Error type Reference
    506 Variant Also Negotiates VARIANT_ALSO_NEGOTIATES RFC2295
    Description:

    The 506 status code indicates that the server has an internal configuration error: the chosen variant resource is configured to engage in transparent content negotiation itself, and is therefore not a proper end point in the negotiation process.

    INSUFFICIENT_STORAGE

    Status code Error name Error type Reference
    507 Insufficient Storage (WebDAV) INSUFFICIENT_STORAGE RFC4918
    Description:

    The 507 (Insufficient Storage) status code means the method could not be performed on the resource because the server is unable to store the representation needed to successfully complete the request. This condition is considered to be temporary. If the request that received this status code was the result of a user action, the request MUST NOT be repeated until it is requested by a separate user action.

    LOOP_DETECTED

    Status code Error name Error type Reference
    508 Loop Detected (WebDAV) LOOP_DETECTED RFC5842
    Description:

    The 508 (Loop Detected) status code indicates that the server terminated an operation because it encountered an infinite loop while processing a request with Depth: infinity. This status indicates that the entire operation failed.

    BANDWIDTH_LIMIT_EXCEEDED

    Status code Error name Error type Reference
    509 Bandwidth Limit Exceeded BANDWIDTH_LIMIT_EXCEEDED No reference
    Description:

    This status code, while used by many servers, is not specified in any RFCs.

    NOT_EXTENDED

    Status code Error name Error type Reference
    510 Not Extended NOT_EXTENDED RFC2774
    Description:

    The policy for accessing the resource has not been met in the request. The server should send back all the information necessary for the client to issue an extended request. It is outside the scope of this specification to specify how the extensions inform the client.

    NETWORK_AUTHENTICATION_REQUIRED

    Status code Error name Error type Reference
    511 Network Authentication Required NETWORK_AUTHENTICATION_REQUIRED RFC6585
    Description:

    The 511 status code indicates that the client needs to authenticate to gain network access. The response representation SHOULD contain a link to a resource that allows the user to submit credentials.

    NETWORK_READ_TIMEOUT_ERROR

    Status code Error name Error type Reference
    598 Network read timeout error NETWORK_READ_TIMEOUT_ERROR No reference
    Description:

    This status code is not specified in any RFCs, but is used by some HTTP proxies to signal a network read timeout behind the proxy to a client in front of the proxy.

    NETWORK_CONNECT_TIMEOUT_ERROR

    Status code Error name Error type Reference
    599 Network read timeout error NETWORK_CONNECT_TIMEOUT_ERROR No reference
    Description:

    This status code is not specified in any RFCs, but is used by some HTTP proxies to signal a network read timeout behind the proxy to a client in front of the proxy.

    Install

    npm i error-types

    DownloadsWeekly Downloads

    9

    Version

    1.0.2

    License

    Apache-2.0

    Last publish

    Collaborators

    • mauro-d
    • nicknaso