Problem responses
This page lists all explicitly supported exceptions and some guidance on how to handle them. In exceptional cases, an exception in the applications will not be handled by specialized exception handlers but instead delegate to the default exception handling. These responses are not described here but should still provide insights into potential ways of handling them.
See Resilience for guidance on generic exception handling.
Not Allowed
Status Code | Status Phrase |
---|---|
405 | Method Not Allowed |
This response indicates that the client used an unsupported request method (aka HTTP Verb).
Potential fix
Verify that the request method matches the supported methods for the endpoint you are calling
Not Acceptable
Status Code | Status Phrase |
---|---|
406 | Not Acceptable |
This response indicates that the server can not provide a response matching the client's requested response type as specified in the Accept
header.
Potential fix
Verify that the request's Accept
header matches the supported response types for the endpoint you are calling
Unsupported Content Type
Status Code | Status Phrase |
---|---|
415 | Unsupported Media Type |
This response indicates that the server can not process the request's content due to unsupported formatting. This error can have several causes, either
- the request body itself, or
- the media type of the request, or
- in rare cases the content encoding of the request.
Potential fix
-
Verify the request format matches the provided
Content-Type
header -
Verify the
Content-Type
header is supported by the endpoint
Not Found
Status Code | Status Phrase |
---|---|
404 | Not Found |
This response indicates that one or more of the entities required to fulfil the request could not be found. This can be both due to the business_id
not being
found, or the specified version
(defined in the If-Match
-header using a weak ETag) not being available.
There are several reasons why this might occur. In the case of an entity not being found, there might be a race condition in the integration (another thread has
already removed the entity in question) or invalid state in the integration (the integration does not know whether the entity already exists or has been
deleted). A Not Found
due to the version not matching usually points to a race condition.
Potential fix
- Maintain a consistent state in the integrating platform
-
Verify that the entity exists using a
GET
-call
Conflict
Status Code | Status Phrase |
---|---|
409 | Conflict |
This response indicates concurrent conflicting write operations have occurred during the processing of the request. Write operations happen within a transaction to ensure ACID operations, when two writes impact the same entities only one of them is acknowledged.
Potential fix
Retry the request
Invalid Format
Status Code | Status Phrase |
---|---|
400 | Bad Request |
This response indicated an error in the request's body. The message could not be correctly converted to the internal representation of this request. The
response can provide additional details on the errors, in the violations
-field, depending on how severe they are. Eg: An unparsable JSON will not contain
additional details, while an invalid JSON will try to point to the invalid fields.
Potential fix
Depending on the response, either:
- Fix the request format, or
- Fix the violations in the error response
Business Constraint
Status Code | Status Phrase |
---|---|
400 | Bad Request |
This response indicates that the request violates one or more business rules. The response will explain the broken constraints in the detail
property or
specify individual constraint violations per field in the violations
property.
Potential fix
Fix the broken constraints indicated in either the detail
or violations
property
Constraint Violation
Status Code | Status Phrase |
---|---|
412 | Precondition Failed |
This response indicates an optimistic lock failure. When providing an If-Match
-header, containing a weak ETag representing the entity version, this lock is
validating before modifying the entity in question.
Potential fix
- Execute the operation with the correct version of the impacted entity, or
- Discard the operation since it has been superseded
Payload too large
Status Code | Status Phrase |
---|---|
413 | Content Too Large |
This response indicates that the body of the request is too large. Some endpoints might limit the amount of data you can send.
Potential fix
Split up the data into multiple, smaller requests
Unauthorized
Status Code | Status Phrase |
---|---|
401 | Unauthorized |
This response indicates that the request is missing valid authentication credentials. Either no valid token was provided or the token has expired. See authentication for more details.
Potential fix
-
Verify that a bearer token is provided via the
Authorization
header - Make sure that the token provided is valid and has not expired
Forbidden
Status Code | Status Phrase |
---|---|
403 | Forbidden |
This response indicates that the token is not allowed to perform the action. When you get this error it means that you are authenticated successfully, but the current user or service account is not allowed to perform the action.
Potential fix
Contact our helpdesk to verify that the service account has been configured correctly to perform the action you're trying to perform
Gateway Timeout
Status Code | Status Phrase |
---|---|
504 | Gateway Timeout |
This response indicates a timeout when executing calls to downstream systems.
Potential fix
Retry the request
Service Unavailable
Status Code | Status Phrase |
---|---|
503 | Service Unavailable |
This response indicates a required service for handling the request is unavailable. There are several potential causes for this response:
- A component upstream from the application is unresponsive. See Resilience on general strategies for handling these resonses, or
- A downstream component is unresponsive. The application should provide guidance in the error response.
Potential fix
If a problem+json
response leads to this page, follow the guidance in the response details. In other cases, retry the request.
Server Error
Status Code | Status Phrase |
---|---|
500 | Internal Server Error |
This response indicates an unrecoverable exception has occurred while processing your request. This could be either due to an internal issue or errors in downstream systems.
Potential fix
Retry the request
Issues
A Server Error
can indicate bugs or unforeseen states in the application. Internal monitoring tools will raise issues for this to alert the development teams.