> For the complete documentation index, see [llms.txt](https://docs.vida.id/identity-stack/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.vida.id/identity-stack/verify/kyc-mobile-sdk/integration-overview/error-codes.md).

# Error Codes

### Understanding Error Sources

Errors in VIDA originate from two layers:

<table><thead><tr><th width="131.71875">Layer</th><th width="202.66015625">Where it Appears</th><th>What's Returned</th></tr></thead><tbody><tr><td>SDK</td><td>Callback (e.g. <code>onError</code>)</td><td><code>errorCode</code> + <code>errorMessage</code></td></tr><tr><td>Backend API</td><td>HTTP response</td><td><code>errorCode</code> + <code>errorMessage</code> + HTTP status code</td></tr></tbody></table>

SDK errors are raised locally on the device — network issues, permission problems, SDK state, and so on. These do **not** include an HTTP status code because no HTTP call was made or the SDK intercepted the issue before reaching the server.

Backend errors are returned from VIDA's API in the response body and always include an HTTP status code.

### KYC - SDK Error

{% hint style="info" %}
Returned via the `onError(int errorCode, String errorMessage, ...)` callback. These errors do not include an HTTP status code.
{% endhint %}

<table><thead><tr><th width="129.87890625">Error Code</th><th>Description</th></tr></thead><tbody><tr><td>42001</td><td>Network timeout - please check your internet connection and try again.</td></tr><tr><td>42002</td><td>Authorization error - verify your authentication method.</td></tr><tr><td>42003</td><td>Network issue detected - please reconnect and try again.</td></tr><tr><td>42004</td><td>The operation failed due to insufficient memory.</td></tr><tr><td>42005</td><td>Internet connection error - please check your network settings.</td></tr><tr><td>42006</td><td>Connection lost - please ensure you are connected to the internet.</td></tr><tr><td>42008</td><td>Unauthorized access.</td></tr><tr><td>42009</td><td>Forbidden request.</td></tr><tr><td>42010</td><td>Requested resource not found.</td></tr><tr><td>42011</td><td>Internal server error.</td></tr><tr><td>42012</td><td>HTTP 4XX - Client-side request error.</td></tr><tr><td>42013</td><td>HTTP 5XX - Server-side processing error.</td></tr><tr><td>52001</td><td>Received a null response from the server.</td></tr><tr><td>52002</td><td>Reserved - defined but not currently thrown anywhere in the SDK.</td></tr><tr><td>52003</td><td>Failed to parse server response.</td></tr><tr><td>52004</td><td>Invalid input parameters detected.</td></tr><tr><td>52005</td><td>Detection process timed out.</td></tr><tr><td>52006</td><td>Error while parsing network response.</td></tr><tr><td>52007</td><td>Unexpected error occurred - please try again later.</td></tr><tr><td>52008</td><td>KYC SDK not initialized - please initialize before proceeding.</td></tr><tr><td>52009</td><td>The KYC SDK process is already running.</td></tr><tr><td>52010</td><td>The liveness failure due to App Package Name mismatch / incorrect Activation Key.</td></tr><tr><td>52011</td><td>Liveness SDK dependency is missing</td></tr><tr><td>52012</td><td>VIDA ID Shield dependency is missing</td></tr><tr><td>52013</td><td>Model initialization failed.</td></tr><tr><td>72001</td><td>The user canceled the process by pressing the back button.</td></tr><tr><td>72002</td><td>Failed to start camera - please retry.</td></tr><tr><td>72003</td><td>Backend response contains error.</td></tr><tr><td>72004</td><td>Face Match is below threshold.</td></tr><tr><td>72005</td><td>Camera permission missing - enable camera access to proceed.</td></tr><tr><td>72006</td><td>Maximum retry attempts reached.</td></tr><tr><td>72007</td><td>Card detection failed - please retake the image.</td></tr><tr><td>72008</td><td>Potential threat or anomaly detected.</td></tr><tr><td>72009</td><td>The user postponed the process by selecting “Try Later.”</td></tr><tr><td>72010</td><td>Detection process canceled.</td></tr><tr><td>72011</td><td>Simulator not supported.</td></tr><tr><td>72012</td><td>Landscape orientation not supported. Please rotate in portrait orientation.</td></tr><tr><td>72013</td><td>Camera capture process failed.</td></tr></tbody></table>

### Backend Errors

{% hint style="info" %}
In this section, you'll find the common errors that may occur during the development and operation of your application. This covers both the error from the SDK and the VIDA backend.
{% endhint %}

<table><thead><tr><th width="117.34375">Error Code</th><th>Description</th></tr></thead><tbody><tr><td>5014</td><td>Image Quality is too low, Kindly ensure the image is well lit and is placed in the right angle</td></tr><tr><td>5016</td><td>Invalid card, Kindly ensure the image is well lit and is placed in the right angle</td></tr><tr><td>5020</td><td>No card detected</td></tr><tr><td>5023</td><td>Bad Quality Image , Id Number Extraction Failed</td></tr><tr><td>5025</td><td>The card failed the idVerification</td></tr><tr><td>5026</td><td>Extraction failed for the below ocr field. Please make sure the fields are properly visible on the card.</td></tr><tr><td>5101</td><td>No card detected</td></tr><tr><td>5103</td><td>Bad Quality Image, Portrait Extraction Failed</td></tr><tr><td>5201</td><td>No portrait is present on the card</td></tr><tr><td>5202</td><td>Image Quality check failed as image is too blurry</td></tr><tr><td>5203</td><td>Image of the card is too dark</td></tr><tr><td>5204</td><td>Image of the card is too bright</td></tr><tr><td>5205</td><td>Image of card is too small, try taking a closer image</td></tr><tr><td>5206</td><td>No PROVINSI title is present, make sure all card’s edge is present within the image</td></tr><tr><td>5207</td><td>Quality check failed. Card has glare</td></tr><tr><td>5301</td><td>Card resolution is smaller than (400x300), the recommended image size is (800x600)</td></tr><tr><td>5302</td><td>Card resolution is larger than (4000x3000), the recommended image size is (800x600)</td></tr><tr><td>5303</td><td>Image size is larger than max allowed 3MB</td></tr><tr><td>5401</td><td>Orientation unknown, take image of card on a flat surface in upright position</td></tr></tbody></table>

### Generic Codes - Malaysian Cards, Passport, & KTP

<table><thead><tr><th width="117.18707275390625">Error Code</th><th width="148.5306396484375">HTTP Status Code</th><th>Error Message</th></tr></thead><tbody><tr><td>5000</td><td>200</td><td>Success</td></tr><tr><td>5001</td><td>400</td><td>Missing required field</td></tr><tr><td>5002</td><td>400</td><td>Unable to decode string.</td></tr><tr><td>5003</td><td>400</td><td>Invalid request parameter or Missing request parameter.</td></tr><tr><td>5005</td><td>500</td><td>Internal server error</td></tr><tr><td>5006</td><td>400</td><td>Unsupported image format detected.</td></tr><tr><td>5007</td><td>400</td><td>Score is below threshold</td></tr><tr><td>5008</td><td>500</td><td>Data processing error</td></tr><tr><td>5009</td><td>400</td><td>Wrong input format</td></tr><tr><td>5010</td><td>400</td><td>Invalid Image Specification</td></tr><tr><td>5012</td><td>400</td><td>Score is above threshold</td></tr><tr><td>5016</td><td>400</td><td>Invalid card, Kindly ensure the image is well lit and is placed in the right angle</td></tr><tr><td>5020</td><td>400</td><td>No card detected</td></tr><tr><td>5022</td><td>500</td><td>Internal server error while fetching the details.</td></tr><tr><td>5024</td><td>400</td><td>The given card is forged</td></tr><tr><td>5027</td><td>400</td><td>The ID numbers on the front and back of your card do not match. Please upload both sides of the same card</td></tr><tr><td>5028</td><td>400</td><td>The card appears to be spoofed</td></tr><tr><td>5029</td><td>400</td><td>Critical landmarks are not visible. Please make sure the landmarks are properly visible on the card</td></tr><tr><td>5030</td><td>400</td><td>The card failed the material check.</td></tr><tr><td>5103</td><td>400</td><td>Bad Quality Image , Portrait Extraction Failed</td></tr><tr><td>5207</td><td>400</td><td>Quality check failed. Card has glare, try taking image in a different angle</td></tr><tr><td>5321</td><td>400</td><td>Card resolution for back side is smaller than (275 x 176), the recommended image size is (800x600)</td></tr><tr><td>5322</td><td>400</td><td>Card back side verification is not supported on V1 endpoint, please switch to V2</td></tr><tr><td>5323</td><td>400</td><td>Configuration set for front only verification, please send only front side image or contact VIDA Support</td></tr><tr><td>5324</td><td>400</td><td>Configuration set for both side verification, please send both front and back side image or contact VIDA Support</td></tr><tr><td>5325</td><td>400</td><td>Front side image not found for verification. Please send the front side image first.</td></tr><tr><td>5402</td><td>400</td><td>Front side and back side of the card have different card types, please send the same card type for verification.</td></tr><tr><td>5403</td><td>400</td><td>The card type sent is not supported for backside verification</td></tr><tr><td>5501</td><td>400</td><td>[OSS] Product id not found</td></tr><tr><td>5502</td><td>400</td><td>[OSS] Product credentials not found</td></tr><tr><td>5503</td><td>400</td><td>[OSS] Product expired</td></tr><tr><td>5504</td><td>400</td><td>[OSS] Invalid License</td></tr><tr><td>5505</td><td>400</td><td>Invalid product</td></tr><tr><td>5601</td><td>400</td><td>Spoof check failed. Image submitted is Recaptured</td></tr><tr><td>5602</td><td>400</td><td>Spoof check failed. Image submitted is either B&#x26;W or Photocopy</td></tr><tr><td>5603</td><td>400</td><td>Spoof check failed. Image submitted is color reprint</td></tr><tr><td>5604</td><td>400</td><td>Spoof check failed. Image submitted is screenshot</td></tr><tr><td>5611</td><td>400</td><td>Minimum landmark checks did not meet the score threshold</td></tr><tr><td>5621</td><td>400</td><td>Passive authentication failed.</td></tr><tr><td>5622</td><td>400</td><td>Active authentication failed.</td></tr><tr><td>5623</td><td>400</td><td>Chip authentication failed.</td></tr><tr><td>5624</td><td>400</td><td>NFC verification is not supported on V1 API.</td></tr><tr><td>5625</td><td>400</td><td>PACE failed.</td></tr><tr><td>5626</td><td>400</td><td>BAC failed.</td></tr><tr><td>5627</td><td>400</td><td>Access control failed. Neither PACE nor BAC was performed.</td></tr><tr><td>5628</td><td>400</td><td>NFC verification is not enabled for this product. Please contact support to enable it.</td></tr></tbody></table>

### Generic Code - KTP cards

<table><thead><tr><th width="116.865234375">Error Code</th><th width="162.393798828125">HTTP Error Code</th><th>Error Message</th></tr></thead><tbody><tr><td>5201</td><td>400</td><td>No portrait is present on the card</td></tr><tr><td>5202</td><td>400</td><td>Image Quality check failed as image is too blurry</td></tr><tr><td>5203</td><td>400</td><td>Image of the card is too dark</td></tr><tr><td>5204</td><td>400</td><td>Image of the card is too bright</td></tr><tr><td>5205</td><td>400</td><td>Image of card is too small, try taking a closer image</td></tr><tr><td>5206</td><td>400</td><td>No PROVINSI title is present, make sure all card’s edge is present within the image</td></tr><tr><td>5207</td><td>400</td><td>Quality check failed. Card has glare, try taking image in a different angle</td></tr><tr><td>5301</td><td>400</td><td>Card resolution is smaller than (400×300), the recommended image size is (800×600))</td></tr><tr><td>5302</td><td>400</td><td>Card resolution is larger than (4000×3000), the recommended image size is (800×600))</td></tr><tr><td>5303</td><td>400</td><td>Image size is larger than max allowed 3MB</td></tr><tr><td>5401</td><td>400</td><td>Orientation unknown, take image of card on a flat surface in upright position</td></tr><tr><td>5404</td><td>400</td><td>The submitted document type is not supported for automated verification.</td></tr><tr><td>5005</td><td>500</td><td>Extraction_failed</td></tr><tr><td>5025</td><td>400</td><td>The card failed the idVerification</td></tr><tr><td>5026</td><td>400</td><td>Extraction failed for the below ocr field. Please make sure the fields are properly visible on the card.</td></tr><tr><td>5023</td><td>400</td><td>Bad Quality Image , Id Number Extraction Failed</td></tr><tr><td>5101</td><td>400</td><td>No card detected</td></tr><tr><td>5102</td><td>500</td><td>Error processing input/output</td></tr><tr><td>5103</td><td>400</td><td>Bad Quality Image, Portrait Extraction Failed</td></tr><tr><td>5104</td><td>400</td><td>Minimum OCR fields did not meet the score thresholds</td></tr><tr><td>10024</td><td>200</td><td>Image submitted is blurred</td></tr><tr><td>10025</td><td>200</td><td>Image submitted has glare</td></tr><tr><td>10026</td><td>200</td><td>Image submitted is too dark to process</td></tr><tr><td>10027</td><td>200</td><td>Input card image is too small in resolution to process. min resolution : [275 * 176]</td></tr></tbody></table>

### OCR Warning Codes - Malaysian cards & Non-KTP&#x20;

{% hint style="info" %}
These return HTTP 200 because the request succeeded, but the OCR confidence for a specific field is low. Check the `ocrResult` object for details.
{% endhint %}

<table><thead><tr><th width="117.08843994140625">Error Code</th><th width="161.5225830078125">HTTP Status Code</th><th>Error Message</th></tr></thead><tbody><tr><td>10028</td><td>200</td><td>Low confidence score for ocr, please check [name] from ocrResult for more details</td></tr><tr><td>10029</td><td>200</td><td>Low confidence score for ocr, please check [address] from ocrResult for more details</td></tr><tr><td>10030</td><td>200</td><td>Low confidence score for ocr, please check [citizenship] from ocrResult for more details</td></tr><tr><td>10031</td><td>200</td><td>Low confidence score for ocr, please check [dob] from ocrResult for more details</td></tr><tr><td>10032</td><td>200</td><td>Low confidence score for ocr, please check [gender] from ocrResult for more details</td></tr><tr><td>10033</td><td>200</td><td>Low confidence score for ocr, please check [idNumber] from ocrResult for more details</td></tr><tr><td>10034</td><td>200</td><td>Low confidence score for ocr, please check [religion] from ocrResult for more details</td></tr><tr><td>10119</td><td>200</td><td>Low confidence score for ocr, please check [personalIdNumber] from ocrResult for more details</td></tr><tr><td>10120</td><td>200</td><td>Low confidence score for ocr, please check [dateOfExpiry] from ocrResult for more details</td></tr><tr><td>10121</td><td>200</td><td>Low confidence score for ocr, please check [dateOfIssuance] from ocrResult for more details</td></tr><tr><td>10122</td><td>200</td><td>Low confidence score for ocr, please check [issuerName] from ocrResult for more details</td></tr><tr><td>10123</td><td>200</td><td>Low confidence score for ocr, please check [issuerCountry] from ocrResult for more details</td></tr><tr><td>10124</td><td>200</td><td>Low confidence score for ocr, please check [issuingAuthority] from ocrResult for more details</td></tr><tr><td>10125</td><td>200</td><td>Low confidence score for ocr, please check [militaryId] from ocrResult for more details</td></tr><tr><td>10126</td><td>200</td><td>Low confidence score for ocr, please check [militaryRank] from ocrResult for more details</td></tr><tr><td>10127</td><td>200</td><td>Low confidence score for ocr, please check [militaryDivision] from ocrResult for more details</td></tr><tr><td>10128</td><td>200</td><td>Low confidence score for ocr, please check extendedIdNumber from for more details</td></tr><tr><td>10129</td><td>200</td><td>Low confidence score for ocr, please check countryOfOrigin from for more details</td></tr></tbody></table>

### Landmark Codes - Malaysian cards

{% hint style="info" %}
These return HTTP 200 because the request succeeded, but part of the card is occluded. Check the `landmarkDetails` object for details.
{% endhint %}

<table><thead><tr><th width="116.6697998046875">Error Code</th><th width="165.63824462890625">HTTP Status Code</th><th>Error Message</th></tr></thead><tbody><tr><td>10012</td><td>200</td><td>Image has Occlusion [kad_pengenalan_header], please check landmark details for more details</td></tr><tr><td>10013</td><td>200</td><td>Image has Occlusion [card_logo], please check landmark details for more details</td></tr><tr><td>10014</td><td>200</td><td>Image has Occlusion [hibiscus], please check landmark details for more details</td></tr><tr><td>10015</td><td>200</td><td>Image has Occlusion [microchip], please check landmark details for more details</td></tr><tr><td>10017</td><td>200</td><td>Image has Occlusion [msg_logo], please check landmark details for more details</td></tr><tr><td>10018</td><td>200</td><td>Image has Occlusion [my_flag], please check landmark details for more details</td></tr><tr><td>10020</td><td>200</td><td>Image has Occlusion [ghost], please check landmark details for more details</td></tr><tr><td>10021</td><td>200</td><td>Image has Occlusion [portrait], please check landmark details for more details</td></tr><tr><td>10022</td><td>200</td><td>Image has Occlusion [name], please check landmark details for more details</td></tr><tr><td>10023</td><td>200</td><td>Image has Occlusion [id_number], please check landmark details for more details</td></tr><tr><td>10401</td><td>200</td><td>Landmark verification failed for the provided card image.</td></tr><tr><td>10426</td><td>200</td><td>Image has Occlusion, please check coat_of_arm from for more details</td></tr><tr><td>10427</td><td>200</td><td>Image has Occlusion, please check kopiah from for more details</td></tr><tr><td>10428</td><td>200</td><td>Image has Occlusion, please check twin_tower from for more details</td></tr><tr><td>10429</td><td>200</td><td>Image has Occlusion, please check state_registrar from for more details</td></tr><tr><td>10430</td><td>200</td><td>Image has Occlusion, please check sn from for more details</td></tr><tr><td>10431</td><td>200</td><td>Image has Occlusion, please check my_logo from for more details</td></tr><tr><td>10432</td><td>200</td><td>Image has Occlusion, please check negara_asal from for more details</td></tr><tr><td>10433</td><td>200</td><td>Image has Occlusion, please check military_logo from for more details</td></tr><tr><td>10510</td><td>200</td><td>Image extraction failed during verification</td></tr></tbody></table>

### Deduplication Error Code

<table><thead><tr><th width="116.609375">Error Code</th><th width="162.0625">Http Status Code</th><th>Message</th></tr></thead><tbody><tr><td>5801</td><td>400</td><td>Verification failed: Image is blacklisted.</td></tr><tr><td>5802</td><td>400</td><td>Verification failed: Face from card associated with multiple ID Numbers.</td></tr><tr><td>5803</td><td>400</td><td>Verification failed: ID Number from card associated with multiple faces.</td></tr><tr><td>5804</td><td>400</td><td>No face detected</td></tr></tbody></table>

### ID Fraud Shield Errors

<table><thead><tr><th width="116.546875">Error Code</th><th width="162.33203125">HTTP Status Code</th><th>Error Message</th></tr></thead><tbody><tr><td>5901</td><td>400</td><td>ID Fraud shield risk level exceeded error threshold.</td></tr><tr><td>5902</td><td>400</td><td>ID Fraud shield evaluation is incomplete.</td></tr><tr><td>5903</td><td>400</td><td>ID Fraud shield transaction details not found.</td></tr></tbody></table>

### NFC Error Codes

<table><thead><tr><th width="118.716796875">Error Code</th><th width="162.87109375">HTTP Status Code</th><th>Message</th></tr></thead><tbody><tr><td>5621</td><td>400</td><td>Passive authentication failed</td></tr><tr><td>5622</td><td>400</td><td>Active authentication failed</td></tr><tr><td>5623</td><td>400</td><td>Chip authentication failed</td></tr><tr><td>5624</td><td>400</td><td>NFC verification not supported on V1 API</td></tr><tr><td>5625</td><td>400</td><td>PACE failed</td></tr><tr><td>5626</td><td>400</td><td>BAC failed</td></tr><tr><td>5627</td><td>400</td><td>Access control failed - neither PACE nor BAC was performed</td></tr><tr><td>5628</td><td>400</td><td>NFC verification is not enabled for this product. Contact support.</td></tr></tbody></table>

### NFC Warning Codes

<table><thead><tr><th width="116.55078125">Error Code</th><th width="161.67578125">HTTP Status Code</th><th>Error Message</th></tr></thead><tbody><tr><td>10520</td><td>200</td><td>Data discrepancy detected between chip and document image.</td></tr><tr><td>10521</td><td>200</td><td>Portrait mismatch detected between chip and document image.</td></tr></tbody></table>

***

### Liveness - SDK Errors

{% hint style="info" %}
Returned via the `onError(int errorCode, String errorMessage, VidaLivenessResponse response)` callback. These errors do not include an HTTP status code.

The errors which are highlighted as **YES** in the customizable column can be customised by the Host application
{% endhint %}

<table><thead><tr><th width="156">Error Code</th><th width="414">Error Message</th><th>Whitelist</th></tr></thead><tbody><tr><td>40001</td><td>Unable to proceed please check your connection</td><td></td></tr><tr><td>40002</td><td>Unable to proceed due to network timeout, please check your connection or &#x3C;Empty message in some cases></td><td>YES</td></tr><tr><td>40003</td><td>Unable to proceed, ensure that the authorization method is correct</td><td>YES</td></tr><tr><td>40004</td><td>Unable to proceed due to unknown network, please reconnect again</td><td>YES</td></tr><tr><td>40005</td><td>Unable to proceed, please check your internet connection</td><td>YES</td></tr><tr><td>40006</td><td>Unable to proceed, please check your internet connection or &#x3C;actual error message ></td><td>YES</td></tr><tr><td>40007</td><td>Unable to proceed please check your connection</td><td>YES</td></tr><tr><td>40008</td><td>Internet Connection Issue</td><td>YES</td></tr><tr><td>50001</td><td>Received a null response from the server</td><td></td></tr><tr><td>50002</td><td>Internal server error</td><td>YES</td></tr><tr><td>50003</td><td>Something went wrong, please try again later</td><td></td></tr><tr><td>50004</td><td>Invalid parameters %1$s</td><td></td></tr><tr><td>50005</td><td>Something went wrong, please try again later</td><td></td></tr><tr><td>50007</td><td>Something went wrong, please try again later</td><td></td></tr><tr><td>50008</td><td>Something went wrong, please try again later</td><td></td></tr><tr><td>50009</td><td>Unable to parse the information</td><td></td></tr><tr><td>50010</td><td>Something went wrong, please try again later</td><td></td></tr><tr><td>50012</td><td>Liveness detection is in progress</td><td></td></tr><tr><td>50013</td><td>License key not found</td><td></td></tr><tr><td>50014</td><td>Something went wrong, please try again later</td><td></td></tr><tr><td>50017</td><td>Internal Server Error</td><td></td></tr><tr><td>50018</td><td>Something went wrong, please try again later</td><td></td></tr><tr><td>50019</td><td>Liveness SDK is not initialized. Initialize it first</td><td></td></tr><tr><td>50020</td><td>Liveness check is not configured, please check with support team</td><td></td></tr><tr><td>50021</td><td><p>Landscape orientation not supported.</p><p>Please rotate in portrait orientation.</p></td><td></td></tr><tr><td>50022</td><td>Liveness image upload failed color flash flow</td><td></td></tr><tr><td>50023</td><td>Back camera not supported for the selected configuration (color flash flow)</td><td></td></tr><tr><td>60001</td><td>Crypto error. Unable to encrypt request</td><td></td></tr><tr><td>60002</td><td>Crypto error. Unable to decrypt response</td><td></td></tr><tr><td>60003</td><td>Unknown error while generating hash</td><td></td></tr><tr><td>60004</td><td>Unknown error while encrypting the data</td><td></td></tr><tr><td>60005</td><td>Unknown error while fetching store key</td><td></td></tr><tr><td>60006</td><td>Device Id not found in the keychain</td><td></td></tr><tr><td>60007</td><td>Device ID could not be decrypted. Device ID or Keychain might be tampered.</td><td></td></tr><tr><td>70001</td><td>Unable to proceed, the functionality will not work without Camera permissions</td><td></td></tr><tr><td>70002</td><td>Face detection failed with error : %1$s</td><td></td></tr><tr><td>70003</td><td>Failed to get image result</td><td></td></tr><tr><td>70004</td><td>Liveness detection is canceled</td><td></td></tr><tr><td>70005</td><td>Retrying liveness detection activity</td><td></td></tr><tr><td>70006</td><td>Image capture process has failed</td><td></td></tr><tr><td>70007</td><td>Detection timed out</td><td></td></tr><tr><td>70008</td><td>User canceled liveness process by clicking back button</td><td></td></tr><tr><td>70009</td><td>Camera start process is failed</td><td></td></tr><tr><td>70010</td><td>Maximum attempt to retry liveness has exhausted</td><td></td></tr><tr><td>70011</td><td>You cannot use the zoomFace gesture with other gestures. Please refer to documentation for more details</td><td></td></tr><tr><td>70012</td><td>Liveness detection failed</td><td></td></tr><tr><td>70013</td><td>Please make sure to add ID Fraud shield SDK dependency</td><td></td></tr><tr><td>70013</td><td>ID fraud shield clientID is missing, please check with support team</td><td></td></tr><tr><td>70014</td><td>Liveness detection interrupted</td><td></td></tr></tbody></table>

### Liveness - Backend Errors

{% hint style="info" %}
Returned in the API response body.
{% endhint %}

<table><thead><tr><th width="110.21875">Error Code</th><th width="415">Error Message</th><th>Whitelist</th></tr></thead><tbody><tr><td>1000</td><td>Something went wrong!</td><td></td></tr><tr><td>1038</td><td>Invalid base64 encoded image string or unable to detect face</td><td></td></tr><tr><td>1039</td><td>Liveness service error</td><td></td></tr><tr><td>1040</td><td>Selfie photo does not match with reference photo</td><td></td></tr><tr><td>1041</td><td>Liveness check failed</td><td>YES</td></tr><tr><td>1042</td><td>Selfie photo matches with reference photo</td><td></td></tr><tr><td>1043</td><td>Selfie photo is a live photo</td><td></td></tr><tr><td>1047</td><td>Unable to detect face from selfie image</td><td></td></tr><tr><td>1057</td><td>Something went wrong!</td><td></td></tr><tr><td>1058</td><td>Please ensure the shot is well-lit and clear</td><td>YES</td></tr><tr><td>1061</td><td>Video liveness score is below the threshold</td><td></td></tr><tr><td>1062</td><td>Please ensure to open your eyes</td><td>YES</td></tr></tbody></table>

### Color Flash Error

<table><thead><tr><th width="118.29296875">Error Code</th><th width="226.6015625">Error Title</th><th width="247.7890625">Error Detail</th><th>Whitelist</th></tr></thead><tbody><tr><td>1801</td><td>Passive liveness evaluation failed</td><td>Passive liveness failed</td><td></td></tr><tr><td>1802</td><td>Image manipulation evaluation failed</td><td>Image manipulation failed</td><td></td></tr><tr><td>1803</td><td>Color captcha evaluation failed</td><td>Color captcha failed</td><td></td></tr><tr><td>1804</td><td>Multiple model failures</td><td>Multi Model Failure</td><td></td></tr><tr><td>1805</td><td>All model evaluations failed</td><td>Complete model failure</td><td></td></tr><tr><td>1806</td><td>Face Color Issue</td><td>Face has no color reflection</td><td>YES</td></tr><tr><td>1807</td><td>Upstream Service Error</td><td>The request to the document service failed.</td><td></td></tr><tr><td>1808</td><td>Upstream Service Error</td><td>Received an empty or invalid response from the document service.</td><td></td></tr><tr><td>1809</td><td>Not Found</td><td>Captcha payload not found for the given transactionId. The session may have expired.</td><td></td></tr><tr><td>1810</td><td>Upstream Service Error</td><td>The document service returned fewer pre-signed URLs than requested.</td><td></td></tr><tr><td>1811</td><td>Encryption Failed</td><td>Failed to encrypt/decrypt payload.</td><td></td></tr><tr><td>1812</td><td>Color Palette Size Issue</td><td>Color Palette Size Issue</td><td></td></tr></tbody></table>

### Invalid Request or Image Error

<table><thead><tr><th width="125.0078125">Error Code</th><th width="274.7734375">Error Title</th><th>Error Detail</th></tr></thead><tbody><tr><td>1065</td><td>Image path invalid</td><td>Invalid image path</td></tr><tr><td>1066</td><td>HMAC key missing</td><td>Image quality low</td></tr><tr><td>1067</td><td>HMAC key invalid format</td><td>HMAC key format is invalid</td></tr><tr><td>1068</td><td>HMAC key invalid length</td><td>HMAC key length is invalid</td></tr><tr><td>1069</td><td>HMAC not present in EXIF</td><td>HMAC signature missing in EXIF metadata</td></tr><tr><td>1070</td><td>HMAC signature mismatch</td><td>HMAC signature validation failed</td></tr><tr><td>1071</td><td>HMAC verification error</td><td>Error verifying HMAC signature</td></tr><tr><td>1072</td><td>S3 role resolution failed</td><td>Unable to resolve AWS role for S3 access</td></tr><tr><td>1073</td><td>S3 region resolution failed</td><td>Unable to resolve AWS region for S3</td></tr><tr><td>1081</td><td>S3 role assume denied</td><td>AssumeRole denied for S3 access</td></tr><tr><td>1082</td><td>S3 access denied</td><td>Access denied by S3</td></tr><tr><td>1083</td><td>S3 no such key</td><td>S3 object key not found</td></tr><tr><td>1084</td><td>S3 read failed</td><td>Failed to read object from S3</td></tr><tr><td>1085</td><td>Input encoding failed</td><td>Failed to encode input</td></tr><tr><td>1087</td><td>Internal error</td><td>Unexpected internal error occurred</td></tr><tr><td>4004</td><td>HMAC signature does not match</td><td>HMAC verification failed</td></tr><tr><td>1006</td><td>Missing required parameter</td><td>Validation Failed</td></tr><tr><td>1007</td><td>Bad Request</td><td>The request body is malformed or contains invalid data types.</td></tr><tr><td>1008</td><td>Remote Service Error</td><td>A downstream service is unavailable or returned an unhandled error.</td></tr><tr><td>1056</td><td>No Image Detected</td><td>JPEG decoding error</td></tr><tr><td>1041</td><td>message: Smart liveness score is below threshold</td><td></td></tr></tbody></table>

### Image Quality Error

<table><thead><tr><th width="125.0078125">Error Code</th><th width="274.7734375">Error Title</th><th>Error Detail</th></tr></thead><tbody><tr><td>1051</td><td>Detect Un-standardized Image Quality</td><td>Face Occluded</td></tr><tr><td>1052</td><td>Detect Un-standardized Image Quality</td><td>Face too small</td></tr><tr><td>1053</td><td>Detect Un-standardized Image Quality</td><td>Image quality low</td></tr><tr><td>1054</td><td>Detect Un-standardized Image Quality</td><td>More than one face</td></tr><tr><td>1055</td><td>Detect Un-standardized Image Quality</td><td>No face detected</td></tr><tr><td>1060</td><td>Image Quality Error</td><td>Image Quality Error</td></tr><tr><td>1063</td><td>Image Quality Is Below Threshold</td><td>Unnatural colour</td></tr><tr><td>1064</td><td>Image Quality Is Below Threshold</td><td>Image is Too Dark</td></tr><tr><td>1074</td><td>Image Quality Is Below Threshold</td><td>Under Exposure</td></tr><tr><td>1075</td><td>Image Quality Is Below Threshold</td><td>Over Exposure</td></tr><tr><td>1076/1059</td><td>Image Quality Is Below Threshold</td><td>Image Is Blur</td></tr></tbody></table>

***

### Backend Integration

In this section, you'll find the common errors that may occur during the development and operation of your application. This covers both the error from the SDK and the VIDA backend.

For further detailed info regarding error codes of OCR and Document Verification, please refer to this page [here](https://app.gitbook.com/o/HFo4Mq4hPbfFvhTREpfY/s/zqikP7fR7hLesltIaRUc/integration-methods/api/document-ai/ocr-and-document-verification-v2/http-status-and-error-codes)

### KYC Error Codes

<table><thead><tr><th width="96.3984375">Code</th><th>Name</th><th width="96.35546875">HTTP</th><th width="150.80078125">Endpoint</th><th>Description</th></tr></thead><tbody><tr><td>5701</td><td>TRANSACTION_NOT_FOUND_ERROR</td><td>404</td><td><p><code>GET</code> <code>/transaction</code></p><p><code>GET</code> <code>/status</code></p></td><td>Audit store has no row for the provided transactionId.</td></tr><tr><td>5702</td><td>KYC_FLOW_TERMINAL_ERROR</td><td>400</td><td><code>POST</code> <code>/verify</code></td><td>The KYC case is already in a terminal state (VERIFIED or FAILED). No further operations accepted. New requests using this groupId will be rejected.</td></tr><tr><td>5703</td><td>NO_VALID_LIVENESS_TRANSACTION_FOUND</td><td>400</td><td><code>POST</code> <code>/verify</code></td><td>No valid liveness image was found for the supplied livenessTransactionIds during IMAGE_FACEMATCH_VERIFICATION.</td></tr><tr><td>5704</td><td>TRANSACTION_RESPONSE_NOT_AVAILABLE</td><td>404</td><td><p><code>GET</code> <code>/transaction</code></p><p><code>GET</code> <code>/status</code></p></td><td>Audit row exists but the stored response payload is blank.</td></tr><tr><td>5705</td><td>DOCUMENT_NOT_FOUND</td><td>404</td><td><p><code>GET</code> <code>/transaction</code></p><p><code>GET</code> <code>/status</code></p></td><td>A presigned URL for the document image could not be generated - document not found in storage.</td></tr></tbody></table>

{% hint style="info" %}
**Important:** The newly introduced error codes are applicable only to responses from the **GET Transaction Details API**. Existing integrations that do not consume this endpoint will continue to operate as before and will not receive these error codes.
{% endhint %}

### Liveness Fraud Codes

<table><thead><tr><th width="99.51171875">Code</th><th>Source</th><th>Meaning</th></tr></thead><tbody><tr><td>1705</td><td>Liveness Service API response</td><td>VIDA fraud threshold breached during liveness check. Returned in the errors array of the Liveness Service GET transaction response.</td></tr><tr><td>10001</td><td>Liveness Service DB state</td><td>Transaction marked as FAILURE due to fraud detection. When My-Verify fetches this liveness transaction, the real liveness scores are hidden and only the fraud error is returned.</td></tr></tbody></table>

### Face Match + Liveness Combined Response Codes

When both liveness and face match are evaluated in a single call, the response may combine multiple codes:

<table><thead><tr><th>Scenario</th><th width="135.25">HTTP</th><th>Response Codes</th></tr></thead><tbody><tr><td>Liveness pass + FaceMatch pass</td><td>200</td><td>imageFaceMatchVerificationResult.data.code: 1042</td></tr><tr><td>Liveness pass + FaceMatch fail</td><td>400</td><td>errors[].code: 1040</td></tr><tr><td>Liveness fail + FaceMatch pass</td><td>400</td><td>errors[].code: 1041 (liveness), result also includes 1042 (match still returned)</td></tr><tr><td>Liveness fail + FaceMatch fail</td><td>400</td><td>errors[].code: 1041 (liveness) + 1040 (match failed)</td></tr><tr><td>No valid liveness transaction found</td><td>400</td><td>errors[].code: 5703</td></tr><tr><td>KYC case already in terminal state</td><td>400</td><td>errors[].code: 5702</td></tr></tbody></table>

{% hint style="info" %}
**These codes appear in the SDK onError callback**

5014–5401 are VIDA backend errors returned during SDK processing. They appear in the errors\[] array of the SDK response and are also surfaced via the onError(errorCode, errorMessage, response) callback on both Android and iOS.

Log these codes on your backend to identify patterns in document quality issues — e.g. high rates of 5202 may indicate a lighting problem in a specific geographic region.
{% endhint %}

### overallStatus - Quick Diagnostic

Use this table to quickly diagnose what a given overallStatus means and where to look for more details.

<table><thead><tr><th width="164.01171875">overallStatus</th><th>First Place to Check</th><th>Common Cause</th></tr></thead><tbody><tr><td>VERIFIED</td><td>Proceed - no investigation needed</td><td>All operations passed on latest attempt</td></tr><tr><td>REVIEW</td><td>operations object - which operation has status REVIEW?</td><td>OCR confidence below 100% or IDV flagged a non-blocking issue</td></tr><tr><td>ERROR</td><td>fraudResult.result.riskLevel first, then operations</td><td>Fraud detected OR genuine operation failure</td></tr><tr><td>IN_PROGRESS</td><td>operations - which operation has status null?</td><td>User did not complete all steps; liveness/faceMatch not yet done</td></tr><tr><td>FAILED</td><td>Case timed out - requiredOperations has unattempted steps</td><td>User abandoned flow, SDK crashed before faceMatch, or session timeout exceeded</td></tr></tbody></table>
