Error Codes
Error code reference for the eID. Covers codes returned by the API and by the CICReader Mobile SDK.
How to Read an Error
Every endpoint returns HTTP 200 once the request is processed, even when the business check fails. Always read in this order:
1. success → false means the request failed
2. code → numeric error code (0 = success)
3. data.status → "success" or "failure"
4. errors[].code → string error code describing the cause{
"success": false,
"code": 4001000,
"message": "Input parameter violates a constraint.",
"data": { "request_id": "f48085e4-3ae4-40bb-b0e1-9b2c72575bc1" },
"errors": [
{
"code": "invalid_parameter_exception",
"message": "Input parameter violates a constraint.",
"detail": { "field": "card_type" }
}
]
}Always include request_id when reporting an error to CAKE Support — it is the key for looking up the server-side log.
Numeric Error Codes
Shared across CAKE's identity platform.
| Code | Message |
|---|---|
401100 | Unauthorized action. You do not have permission to perform this action. |
2001000 | Face data constraint violation. |
2001001 | Embedding data violates a constraint. |
2001002 | Unexpected error occurred while processing the external request. |
2001003 | No faces detected in the selfie or original image. |
2001005 | Unexpected error occurred while processing the request. |
2001006 | Selfie and front NID do not match. |
2001007 | Client not found in the system. |
2001008 | Face is already registered in the system. |
2001009 | Multiple faces detected in the selfie or original image. |
2001010 | Access ID not found in the system. |
2001011 | Liveness check failed. |
2001012 | Sanity check failed. |
2001014 | Registration rate limit exceeded. Too many registration attempts. |
2001015 | Registration brute force limit exceeded. |
2001016 | Face authentication rate limit exceeded. Too many attempts. |
2001017 | Face authentication brute force limit exceeded. |
2001019 | Transaction not found in the system. |
2001020 | Transaction lock failed. |
2001021 | Invalid transaction request. |
2001022 | Transaction has already been verified. |
2001023 | Invalid transaction key. |
2001024 | Authentication lock failed. |
2001025 | Invalid selfie image provided. |
2001026 | Duplicated image detected. |
2001027 | Invalid token provided. |
2001031 | Upload rate limit exceeded. |
2002100 | Transaction already expired. |
2002101 | Transaction challenge invalid. |
2002200 | Selfie image has expired. |
2002202 | Invalid selfie image provided. |
2002203 | User profile is already locked. |
2002204 | User profile is not active. |
4001000 | Input parameter violates a constraint. |
4001001 | The X-TV-Timestamp header is expired. Please provide a newer timestamp. |
4001002 | Selfie or original image contains more than one face. |
4001005 | Ref ID is invalid. |
4041000 | The image ID is not found in DB. |
4041001 | The face of user not found. |
4041002 | The profile of user not found. |
4041003 | The request ID is not found when polling result by id. |
4041004 | The file ID is not found in DB. |
4041005 | The collection is not found in DB. |
4091000 | The cus_user_id has been registered. |
4131000 | The input image size exceeds the allowed limit (15MB). |
4131001 | The input file size exceeds the allowed limit (15MB). |
4151000 | The provided image format is not supported (JPG/PNG). |
4151001 | The provided file format is not supported (PDF). |
4291000 | The number of requests exceeded your throughput limit. |
5001000 | Some unexpected error occurs while processing the request. |
eID-Specific Codes
| Code | Message |
|---|---|
2001029 | NFC info not found. |
2001030 | Invalid document id. |
String Error Codes
Returned in the errors[].code array.
| Code | Description |
|---|---|
access_id_not_found | Access ID not found. |
access_denied_exception | You are not authorized to perform the action. |
invalid_parameter_exception | Input parameter violates a constraint. |
request_time_too_skewed | The X-TV-Timestamp header is expired, need a newer one. |
image_not_found_exception | The image ID is not found in DB. |
image_too_large_exception | The input image size exceeds the allowed limit (15MB). |
invalid_image_format_exception | The provided image format is not supported (JPG/PNG). |
duplicated_image | Images sent to server are duplicated. |
image_has_no_faces | Image sent to the server has no faces. |
image_has_multiple_faces | Image sent to the server has multiple faces. |
request_not_found_exception | The request ID is not found when polling result by id. |
request_timeout_exception | Request takes too long to process. |
rate_limit_exception | The number of requests exceeded your throughput limit. |
internal_server_error | Some unexpected error occurs while processing the request. |
transaction_lock_failed | Transaction lock failed. |
transaction_invalid_request | Invalid transaction request. |
user_profile_not_found_exception | The profile of user not found. |
user_profile_locked | User profile has been locked. |
user_not_found_exception | User not found. |
HTTP Status Codes
| Code | Description |
|---|---|
401 | You are not authorized to perform the action. |
500 | Some unexpected error occurs while processing the request. |
CICReader SDK — Android
Raised by the Android SDK as CICException. Separate from the API error codes above.
| Code | Message |
|---|---|
600032 | NfcNotAvailableException — NFC is not available. |
600316 | IllegalMRZException — Illegal MRZ information detected. |
600317 | IllegalCanException — Illegal CAN information detected. |
600333 | EstablishMessageChannelFailedException — Establishing the PACE message channel failed. |
600396 | InvalidCardType — The scanned card is not an NID. |
600503 | UnexpectedException — An unexpected exception occurred. |
600666 | ReadingDataFailedException — Reading data from the NID failed. |
601400 | NetworkError — A network error occurred. |
601401 | ApiError — An error came back from the API. |
601404 | UnauthorizedError — The user is unauthorized. |
601408 | NotFoundError — The requested resource was not found. |
601503 | ServerError — A server error occurred. |
CICReader SDK — iOS and JavaScript
Raised by the iOS SDK as CESNfcError, and by the JavaScript bridge as {code, message}.
| Code | Message |
|---|---|
-1 | Unspecified — An unexpected error. JavaScript bridge only. |
3 | UserCancelled — The user cancelled. JavaScript bridge only. |
600001 | ResponseError — An error occurred while processing the NFC response. |
600002 | InvalidResponse — Some data on the card is invalid. |
600032 | NFCNotSupported — NFC is not supported on this device. |
600101 | SessionOnGoing — Another reading session is in progress. |
600102 | SystemResourceUnavailable — The NFC system is busy. |
600103 | NfcNotAvailable — The device does not support NFC. JavaScript bridge only. |
600301 | InvalidResponseChecksum — The response checksum was invalid. |
600302 | MissingMandatoryFields — Required fields were missing from the response. |
600304 | CannotDecodeASN1Length — The ASN.1 length could not be decoded. |
600308 | InvalidASN1Value — An invalid ASN.1 value was encountered. |
600316 | InvalidMRZKey / InvalidFullMRZKey — The MRZ key is invalid. |
600317 | InvalidCANKey — The Card Access Number key is invalid. |
600332 | MoreThanOneTagFound — More than one NFC tag was found. |
600333 | EstablishMessageChannelFailedException — PACE channel setup failed. JavaScript bridge only. |
600364 | InvalidHashAlgorithmSpecified — An invalid hash algorithm was specified. |
600365 | InvalidDataPassed — Invalid data was passed to the function. |
600366 | InvalidRequestUrl — An invalid request URL was specified. iOS only. |
600396 | InvalidCardType — The scanned card is not an NID. |
600400 | NoConnectedTag — No connected NFC tag was found. |
600401 | D087Malformed — The D087 command was malformed. |
600404 | NotImplemented — The feature or operation is not implemented. |
600408 | TagNotValid — The NFC tag is not valid. |
600416 | ConnectionError — A connection error occurred with the NFC tag. |
600432 | UserCanceled — The operation was cancelled by the user. |
600464 | Uninitialized — The library was not initialized before use. |
600503 | UnexpectedError — An unexpected error occurred. |
600601 | UnableToProtectAPDU — Unable to protect APDU. |
600602 | UnableToUnprotectAPDU — Unable to unprotect APDU. |
600604 | UnsupportedDataGroup — The requested data group is not supported. |
600605 | NotYetSupported — The feature or operation is not yet supported. |
600608 | DataGroupNotRead — The requested data group was not read. |
600616 | UnknownTag — An unknown tag was encountered. |
600632 | UnknownImageFormat — An unknown image format was encountered. |
600666 | ReadingDataFailedException — Reading data from the NID failed. JavaScript bridge only. |
600700 | UIError — An error occurred in the UI. |
601400 | NetworkError — A network error occurred. |
601401 | ApiError — An API error occurred. |
601404 | ApiAccessDenied — Access to the API was denied. |
601405 | ApiParseError — An error occurred while parsing the API response. |
601503 | ServerError — A server error occurred. |
CICReader SDK — Flutter
The Flutter plugin shares three codes across both platforms, then surfaces the underlying platform's code.
| Code | Message |
|---|---|
-1 | Unspecified — An unexpected error. The message carries the detail. |
3 | UserCancelled — The user cancelled the operation. |
4 | SessionOnGoing — Another reading session is in progress. |
INFO
SDK codes (600xxx, 601xxx) and API codes (2001xxx, 4001xxx) are independent ranges. The same network failure can surface as 601400 from the SDK or 5001000 from the API, depending on where it occurred.
Next Steps
- Read NFC — where most chip-read errors originate
- Verify NFC — errors raised when cross-checking against C06