Errors
Gateway Errors
All gateways should expose the following error codes to Moveworks.
The error code and message format should follow exactly as below. The API gateway should make limited-to-no changes to error messages exposed by underlying systems.
{
"error": {
"code": "ERROR_CODE_IDENTIFIER",
"message": "Description of the error."
}
}
We recommend explicitly modeling the following error codes as follows:
400 INPUT_VALIDATION_FAILED
- Moveworks submitted an invalid request to the gateway.
{
"error": {
"code": "INPUT_VALIDATION_FAILED",
"message": "Mandatory field not provided: submitted_by."
}
}
401 AUTHENTICATION_FAILED
- The provided credential by Moveworks is invalid or missing. This is NOT the same as authentication failing between the gateway and your downstream systems.
{
"error": {
"code": "AUTHENTICATION_FAILED",
"message": "Bearer token missing.",
}
}
404 NOT_FOUND
- The resource identifier Moveworks is requesting is missing.
{
"error": {
"code": "NOT_FOUND",
"message": "Form ID 222 does not exist.",
}
}
429 RATE_LIMIT_EXCEEDED
- Moveworks has exceeded the allowable # of requests / min.
{
"error": {
"code": "RATE_LIMIT_EXCEEDED",
"message": "Rate limit exceeded.",
}
}
All responses should continue the following headers indicating rate limit consumption:
X-RateLimit-Limit: 600 # The maximum number of requests you're permitted to make per minute.
X-RateLimit-Remaining: 421 # The number of requests remaining in the current rate limit window.
X-RateLimit-Reset: 18 # The remaining window before the rate limit FULLY resets in UTC epoch seconds.
502 EXTERNAL_REST_ERROR
- Something went wrong between the gateway and your system. Should include the raw response from the source system's error.
{
"error": {
"code": "EXTERNAL_REST_ERROR",
"message": "Service Cloud rejected the request. Raw response: SOQL insertion failed. Can not set Case Owner to Contact record.",
}
}
500 INTERNAL_SERVER_ERROR
- Something went wrong in the gateway and threw an exception.
{
"error": {
"code": "INTERNAL_SERVER_ERROR",
"message": "NoneType has no attribute 'records'",
}
}
Updated 4 days ago