This documentation is for WSO2 API Manager 1.10.0 View documentation for the latest release.
Page Comparison - Error Handling (v.26 vs v.27) - API Manager 1.10.0 - WSO2 Documentation

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: https://wso2.org/jira/browse/DOCUMENTATION-7559

...

Info

The HTTP Status Codes and the corresponding error codes from the error responses are given below.

HTTP Status CodeError Code
401900901, 900902, 900905, 900907, 900909
403900906, 900908, 900910
429900800
500900900
503700700, 900801


Transport error codes

Error CodeDetail
101000Receiver input/output error sending
101001Receiver input/output error receiving
101500Sender input/output error sending
101501Sender input/output error receiving
101503Connection failed
101504Connection timed out (no input was detected on this connection over the maximum period of inactivity)
101505Connection closed
101506NHTTP protocol violation
101507

Connection canceled

101508Request to establish new connection timed out
101509Send abort
101510Response processing failed

If the HTTP PassThrough transport is used, and a connection-level error occurs, the error code is calculated using the following equation:


Error code = Base error code + Protocol State

There is a state machine in the transport sender side, where the protocol state changes according to the phase of the message.

Following are the possible protocol states and the description for each:

Protocol State
Description
Protocol State
Description
REQUEST_READY (0)Connection is at the initial stage ready to send a request
REQUEST_HEAD(1)Sending the request headers through the connection
REQUEST_BODY(2)Sending the request body
REQUEST_DONE(3)Request is completely sent
RESPONSE_HEAD(4)The connection is reading the response headers
RESPONSE_BODY(5)The connection is reading the response body
RESPONSE_DONE(6)The response is completed
CLOSING(7)The connection is closing
CLOSED(8)The connection is closed

Since there are several possible protocol states in which a request can time out, you can calculate the error code accordingly using the values in the table above. For example, in a scenario where you send a request and the request is completely sent to the backend, but a timeout happens before the response headers are received, the error code is calculated as follows:

In this scenario, the base error code is CONNECTION_TIMEOUT(101504) and the protocol state is REQUEST_DONE(3).

Therefore, 

Error code = 101504 + 3 = 101507

These Transport error codes are used in Advanced Configurations of Endpoints.

Custom error messages

To send a custom message with a custom HTTP status code, you execute an additional sequence that can generate a new error message. You then override the message body, HTTP status code and other values.

...