The HTTP Status Codes and the corresponding error codes from the error responses are given below.
Transport error codes
|101000||Receiver input/output error sending|
|101001||Receiver input/output error receiving|
|101500||Sender input/output error sending|
|101501||Sender input/output error receiving|
|101504||Connection timed out (no input was detected on this connection over the maximum period of inactivity)|
|101506||NHTTP protocol violation|
|101508||Request to establish new connection timed out|
|101510||Response processing failed|
If the HTTP PassThrough transport is used, and a connection-level error occurs, the error code is calculated using the following equation:
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:
|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
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.