When errors/exceptions occur in the system, the API Manager throws XML-based error responses to the client by default. To change the format of these error responses, you change the relevant XML file in the
<AM_HOME>/repository/deployment/server/synapse-configs/default/sequences directory. The directory includes multiple XML files, named after the type of errors that occur. You must select the correct file.
For example, to change the message type of authorization errors, open the
<AM_HOME>/repository/deployment/server/synapse-configs/default/sequences/_auth_failure_handler.xml file and change
application/xml to something like
Similarly, to change the error messages of throttling errors (e.g., quota exceeding), change the _throttle_out_handler_.xml file; resource mismatch errors, the _resource_mismatch_handler_.xml file, etc.
Given below are some error codes and their meanings.
API handlers error codes
|Error code||Error Message||Description|
Unclassified Authentication Failure
|An unspecified error has occurred|
|Invalid Authentication information provided|
|No authentication information provided|
Incorrect Access Token Type is provided
The access token type used is not supported when invoking the API. The supported access token types are application and user accesses tokens. See Access Tokens.
No matching resource found in the API for the given request
|A resource with the name in the request can not be found in the API.|
The requested API is temporarily blocked
|The status of the API has been changed to an inaccessible/unavailable state.|
|The user invoking the API has not been granted access to the required resource.|
The subscription to the API is inactive
|Happens when the API user is blocked.|
The access token does not allow you to access the requested resource
Can not access the required resource with the provided access token. Check the valid resources that can be accessed with this token.
|Message throttled out|
The maximum number of requests that can be made to the API within a designated time period is reached and the API is throttled for the user.
This API has been blocked temporarily. Please try again later or contact the system administrators.
Sequences error codes
|Production/sandbox key offered to the API with no production/sandbox endpoint|
|No matching resource found in the API for the given request|
In addition to the above error codes, we have engaged Synapse-level error codes to the default fault sequence and custom fault sequences (e.g.,_token_fault_.xml) of the API Manager. For information, see Error Handling in WSO2 ESB documentation.
Custom Error Message with Custom HTTP Status Code for Throttled-out Messages
If you need to send a custom message with custom HTTP status code we may execute additional sequence which can generate new error message. There we can override message body, HTTP status code etc. Following example demonstrates how we can override the throttle out message's HTTP status code.
Go to <APIM_HOME>/repository/deployment/server/synapse-configs/default/sequences directory and create the file convert.xml as follows.
Alternatively you can use source view to add it to synapse configuration.
To do that follow the below steps.
- Start the API Manager and log in to Management Console. (
- Go to Manager --> source view.
- Copy the content of the sequence in convert.xml and paste as a new sequence in the source view and update it.
If it deployed properly you will see a message like following in system logs. Please check the logs and see is there any issue in deployment process.
Then try to invoke API until requests get throttled out.
You will see following response.