Format

Errors will be returned in a format containing:

  • Error Message errorMessage

  • Unique Error ID errorId

  • HTTP Error Code errorCode

  • A timestamp of the time the error occurred timestamp

For example, this is an error returned when supplying inputs with different root elements:

Response (XML)
<ErrorMessage>
    <errorMessage>Different root element names: '{}document' and '{}site'</errorMessage>
    <errorId>83a6fab0-97c0-428d-9e6f-87bcec331072</errorId>
    <errorCode>400</errorCode>
    <timestamp>2019-09-10T15:51:25.903+0000</timestamp>
</ErrorMessage>
XML
Response (JSON)
{
    "errorMessage": "Different root element names: '{}document' and '{}site'",
    "errorId": "83a6fab0-97c0-428d-9e6f-87bcec331072",
    "errorCode": 400,
    "timestamp": "2019-09-10T15:51:48.676+0000"
}
JSON

Content Type

If set, the error will be returned in the content type specified in the Accept header of the request.
E.g. if there was an error getting a Job's information and you set Accept to application/json, it will be returned in JSON format.

If no Accept header is set, and you posted XML or JSON inputs, it will return in the content type of your inputs.
For example, posting a comparison in XML with incorrect file paths will return something like this (stack trace cut down for readability):

<error>
    <errorMessage>Problem loading the A input</errorMessage>
    <errorId>1bcc1cba-f090-4ef1-86e9-1ea3bef82a1e</errorId>
    <errorCode>400</errorCode>
    <timestamp>2019-09-10T15:51:48.676+0000</timestamp>
</error>
XML

If neither of those previous conditions are set (e.g. no Accept  header and posted a comparison using multipart/form-data) it will fallback to XML format.