Skip to content

Error Codes ​

Error code reference for the FaceAuthen. Covers every code returned by the API. Codes raised by the Mobile SDK or Web SDK are out of scope for this page.

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:

text
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
json
{
  "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.

CodeMessage
401100Unauthorized action. You do not have permission to perform this action.
403101Permission denied. You do not have permission to perform this action.
2001000Face data constraint violation.
2001001Embedding data violates a constraint.
2001002Unexpected error occurred while processing the external request.
2001003No faces detected in the selfie or original image.
2001005Unexpected error occurred while processing the request.
2001006Selfie and front NID do not match.
2001007Client not found in the system.
2001008Face is already registered in the system.
2001009Multiple faces detected in the selfie or original image.
2001010Access ID not found in the system.
2001011Liveness check failed.
2001012Sanity check failed.
2001014Registration rate limit exceeded. Too many registration attempts.
2001015Registration brute force limit exceeded.
2001016Face authentication rate limit exceeded. Too many attempts.
2001017Face authentication brute force limit exceeded.
2001019Transaction not found in the system.
2001020Transaction lock failed.
2001021Invalid transaction request.
2001022Transaction has already been verified.
2001023Invalid transaction key.
2001024Authentication lock failed.
2001025Invalid selfie image provided.
2001026Duplicated image detected.
2001027Invalid token provided.
2001031Upload rate limit exceeded.
2002100Transaction already expired.
2002101Transaction challenge invalid.
2002200Selfie image has expired.
2002202Invalid selfie image provided.
2002203User profile is already locked.
2002204User profile is not active.
2009000Registration not found or expired.
2009001Registration proof is invalid.
2009003Another registration for this key is in progress. Please retry.
2009004Signing credential not found.
2009005SDK version is no longer supported. Please update the app.
4001000Input parameter violates a constraint.
4001001The X-TV-Timestamp header is expired. Please provide a newer timestamp.
4001002Selfie or original image contains more than one face.
4001005Ref ID is invalid.
4041000The image ID is not found in DB.
4041001The face of user not found.
4041002The profile of user not found.
4041003The request ID is not found when polling result by id.
4041004The file ID is not found in DB.
4041005The collection is not found in DB.
4091000The cus_user_id has been registered.
4131000The input image size exceeds the allowed limit (15MB).
4131001The input file size exceeds the allowed limit (15MB).
4151000The provided image format is not supported (JPG/PNG).
4151001The provided file format is not supported (PDF).
4291000The number of requests exceeded your throughput limit.
5001000Some unexpected error occurs while processing the request.

Face Authentication Verdict Codes ​

WARNING

Two CAKE sources document 2002201 and 2002205 the opposite way round:

CodeError Code page (06/2024)Verify Face Authen API page (05/2026)
2002201verdict unmatchedverdict unsure
2002205verdict unsureverdict unmatched

The table below follows the API page, which is the more recently updated of the two. If your system branches on these codes, confirm with the CAKE backend team before going to production — reading them the wrong way round inverts unmatched and unsure.

CodeMessage
2002201Face authentication did not match (verdict unsure).
2002205Face authentication did not match (verdict unmatched).
2002206User profile is locked.

String Error Codes ​

Returned in the errors[].code array.

CodeDescription
access_id_not_foundAccess ID not found.
access_denied_exceptionYou are not authorized to perform the action.
permission_denied_exceptionThe caller is not allowed on this endpoint — for example an SDK Bearer token on a backend-only endpoint.
invalid_parameter_exceptionInput parameter violates a constraint.
request_time_too_skewedThe X-TV-Timestamp header is expired, need a newer one.
image_not_found_exceptionThe image ID is not found in DB.
image_too_large_exceptionThe input image size exceeds the allowed limit (15MB).
invalid_image_format_exceptionThe provided image format is not supported (JPG/PNG).
duplicated_imageImages sent to server are duplicated.
image_has_no_facesImage sent to the server has no faces.
image_has_multiple_facesImage sent to the server has multiple faces.
request_not_found_exceptionThe request ID is not found when polling result by id.
request_timeout_exceptionRequest takes too long to process.
rate_limit_exceptionThe number of requests exceeded your throughput limit.
internal_server_errorSome unexpected error occurs while processing the request.
transaction_lock_failedTransaction lock failed.
transaction_invalid_requestInvalid transaction request.
user_profile_not_found_exceptionThe profile of user not found.
user_profile_lockedUser profile has been locked.
user_not_found_exceptionUser not found.
sdk_version_unsupportedThe SDK is older than the minimum version your tenant accepts for device-signed requests. See Request Signing.

Registration and Authentication Only ​

CodeDescription
register_rate_limit_exceededRegister rate limit exceeded.
register_brute_force_limit_exceededRegister brute force limit exceeded.
face_auth_rate_limit_exceededFace auth rate limit exceeded.
face_auth_brute_force_limit_exceededFace auth brute force limit exceeded.
face_already_registeredFace has been registered on the system.
user_already_registeredThe user_id has been registered.
compare_faces_not_matchedFaces detected from images sent to the server are not matched.
sanity_check_failedVerify selfie / id_card sanity failed.
liveness_check_failedVerify selfie / id_card liveness failed.
selfie_image_invalidSelfie image sent to the server has length not equal to configuration.
incorrect_number_of_facesSelfie or original image have more than 1 faces.

Device Key Only ​

Returned by the Init, Confirm, Get Active and Revoke signing credential endpoints.

CodeDescription
registration_expiredThe registration is unknown, belongs to another device, or passed expires_at. Start again with Init.
registration_proof_invalidThe registration proof failed a check; detail.reason names it.
registration_conflictA concurrent confirmation for the same key_id is running. Safe to retry.
signing_credential_not_foundThe key_id does not exist for this device in your tenant.

Profile Locking ​

The sequence that leads to a locked profile:

StepCodeEffect
Rate limit exceeded2001016Transient — the user can retry later.
Brute-force limit exceeded2001017The profile locks.
Every subsequent call2002206Rejected until unlocked.

Use Unlock Profile to clear the lock.

Next Steps ​

Developers