Error Handling and Reporting
This section describes the most common errors that can occur while using the Digital Connect Check-In API services. This includes system errors and any mistakes the API client - Agent or Passenger - can make when managing the reservations.
Some of the errors are the results of invalid API usage, most commonly a missing mandatory key in the request or invalid value type. In such cases, we recommend verifying the request against the API documentation before reporting a ticket to Sabre Customer Care.
How to Handle API Session Expiry
When a service is called with a non-existent or expired session (invalid Session-Id HTTP header), the application returns the following error message:
{ "status": "Incomplete", "type": "BusinessLogic", "errorCode": "ERR.DCCI.APP.BUSINESS_ERROR", "timeStamp": "2019-09-24T13:02:13", "message": "Cannot find cached object for sessionID=0909fcd4444549508a2818bfa4d72579 in X0_CheckInSession seGetReservation"" }
In case of such error, starting the flow from the beginning by repeating the reservation look-up is required.
Error Reporting
There are two types of errors for Digital Connect Check-In API:
-
User errors
User errors are indicated by a 4xx HTTP response code and show that Sabre API Gateway found a problem with the user request such as unauthorized access, authentication error or invalid API path. Fixing the issue in the user application is recommended before submitting the request again. -
Server errors:
Server errors are indicated by a 5xx HTTP response code. These are generic errors that do not have specific handling. In most cases, the solution is to resend the exact same request that triggered the wrong response and receive the correct one.
For each API error, Digital Connect Check-In API Gateway returns the following values:
- A HTTP status code - for example:
400
- An error code - for example:
ERR.DCCI.INTERNAL_ERROR
- Status - the possible status codes are
Complete
,Incomplete
,NotProcessed
, andUnknown
- An error type - the error types are:
Transport
,Validation
,Application
, andBusinessLogic
.
Currently, the application does not return an error message for Transport errors because Transport errors are mostly used for 2SG errors. - An error message - for example:
Reservation not found.
The lists of the error codes, returned by Digital Connect Check-In services, are included in the overview sections for each JSON service.
Error Message Formats
If an API call fails, an error message is returned and structured as follows:
{ "status": "<status>", "type": "<type>", "errorCode": "<errorCode>” "timeStamp": "2019-12-05T21:59:11", "message": "<messageText>” “details” : { “<messageDetails>”: "<messageDetails>" } }
Error Message Examples
The following is an example of an actual error message with the values. The Type
line indicates the type of error message. In this example, the error message type is Validation
. The Details
area shows the field recordLocatorXYZ
is not supported in the request body.
{ "status": "NotProcessed", "type": "Validation", "errorCode": "ERR.DCCI.CLIENT.JSON_MAPPING_ERROR” "timeStamp": "2019-09-11T10:59:32", "message": "Json Mapping Error” “details” : { “reservationCriteria.recordLocatorXYZ”: [ “invalid.property” ] } }
In such case, Digital Connect Check-In responds with information that the reservation identifier (PNR locator) or the passenger data provided in the request is not found in Sabre systems. Usually, this is the result of a typographical end-user error.
{ "status": "Unknown", "type": "BusinessLogic", "errorCode": "ERR.DCCI.RESERVATION_NOT_FOUND” "timeStamp": "2019-09-11T10:58:44", "message": "Reservation not found.” }
In Agent flows Digital Connect Check-In receives a Sabre shared session token (ATH) in the request. If this token is not valid e.g. it has expired or is not associated with the current environment/Airline partition, the application responds with the INVALID_CONTEXT
error code.
{ "status": "Complete", "type": "BusinessLogic", "errorCode": "ERR.DCCI.INVALID_CONTEXT” "timeStamp": "2019-09-24T13:01:40", "message": "USG session BinarySecurityToken provided in request is not valid” }