Failure reasons¶
A failure reason is a stored diagnostic record with a type category and an optional detail description. It may apply to the entire session or to a technology result. The presence of this record, a negative result, an HTTP request error, and the final session status are distinct indicators: consider them together.
This page describes the actual contract of the current backend. Messages that are only returned by an individual HTTP request or written to a technical log do not automatically become a failure_reason.
Where to retrieve failure reasons¶
Full and light Flow Session results use the same error format:
POST /api/flows/sessions/result/— full result;POST /api/flows/sessions/result/light/— light result;<technology_block>.failure_reason— the reason for the selected technology result;flow_session_failure_reasons[]— reasons for the session itself and a selection of technology reasons. This is an aggregate array, not just session-level errors.
These responses have no separate root-level failure_reason for the session. In a webhook, the location of the error and field inclusion rules depend on the event.
Structure and missing values¶
| Field | JSON type | Conditions |
|---|---|---|
<block>.failure_reason |
object | If the selected record has a reason. Address is an exception; see below. |
failure_reason.type |
string, enum | Required within the object, non-null; exact values are listed in the category table. |
failure_reason.detail |
string | When a description is available. An empty string is allowed and preserved. This is diagnostic text, not a separate error code. |
flow_session_failure_reasons |
object[] | An array is generated in both full and light responses, including []. |
flow_session_failure_reasons[].type |
string | Required, non-null. The aggregate array schema does not restrict the string to the technology enum: EXPIRED also occurs here. |
flow_session_failure_reasons[].detail |
string | When a description is available. |
The reason object contains no identifier, timestamp, technology code, or attempt number. In the aggregate array, you cannot reliably determine the source of an error from its position or text alone. The storage limit for detail is 512 characters; the code defines no common mechanism for safely truncating external messages.
Error categories¶
Values are case-sensitive. A category name describes how the backend classifies an error; by itself, it does not establish who is responsible, whether a retry is possible, or whether the rejection is final.
type |
Meaning | Level and confirmed usage |
|---|---|---|
EXPIRED |
The session expired | Session. Periodic processing of expired, unfinished sessions. |
OTHER |
Another reason | Both levels. Fingerprint limit, image hash check, client messages. |
CALC_RESULT |
A negative decision or an unmet check condition | Technologies. Face scores, document rules, registry records, some OTP errors. May also mean that data required for calculation is missing. |
SERVICE_ERROR |
An error classified by the handler as a service error | Technologies. Connection, processing, provider response. Sometimes includes input data errors in an external request. |
REQUEST_ERROR |
Request execution error | Technologies. AML, MRZ, and IP. There is no uniform distinction from SERVICE_ERROR across all technologies. |
CLIENT |
An error classified by the handler as a client error | Technologies. Rejected access or input data, IP rules, and questionnaires. |
TIMEOUT |
A time limit was exceeded | Technologies. In GBDFL and PPS, the polling time limit; also accepted from the client. Not every timeout has this type. |
NO_CAM |
A report that the camera is missing / unavailable | Declared for technologies and accepted by the input schema for error reports. |
DIFFERENT_FACES |
Faces do not match across Liveness detections | Liveness technologies. For standalone Face2Face and NPCK, a mismatch has CALC_RESULT. |
VR_CAM |
A negative virtual camera check | Liveness technologies, with the message VR Camera Attack. |
Errors and verification outcome¶
result: falseis possible without a reason: the initial state of some registries, an AML match when rejection on sanctions matches is enabled, or a negative DR v1 calculation without a separate record.result: trueis possible with a reason: a confirmed example is GBDUL withallow_service_unavailable. Successfully writing values to an existing result also does not mean that a previous error is always cleared.resultmay not have a value yet. The API then excludes the field. For Liveness Core, this is also possible when the check is sent for manual review.- KZ Info and ERD have no
resultfield at all: analyze the data retrieval status and reason.
Session status and flow_session_result¶
During normal completion, a reason belonging to the session itself leads to FAILED. The results of active technologies are then checked: incomplete or negative verification usually produces FAILED, successful verification produces FINISHED; IN_REVIEW is provided for Liveness Core with an undetermined result. The full list of statuses is in the results overview.
The public flow_session_result is calculated separately:
- Until the status is
FINISHEDorAPPROVED, it returnsfalse. - For selected technology results, a
failure_reasonor an explicitresult: falseproducesfalse. - A missing
resultvalue is not itself checked asfalse; a missing single-record relation and an empty collection are handled differently.
This calculation iterates over Workflow technologies without filtering by activity, except for Person. The status check at completion uses active technologies and their results, and treats KZ Info/ERD as complete when their status is RECEIVED or FAILED. Therefore, status: "FINISHED" and flow_session_result: false can occur together, particularly when a technology error is stored. Manual APPROVED also does not bypass the check for stored errors in the public aggregate result. The session's own reasons are not checked again directly in this aggregate calculation; normal completion accounts for them through the status.
Saving a technology reason usually does not change the session status immediately. Exceptions are listed below. An intermediate negative result during PROGRESS is not equivalent to a session that has already ended with FAILED.
Workflow¶
Session-level reasons are in flow_session_failure_reasons[].
type |
detail |
When it occurs and its effects |
|---|---|---|
EXPIRED |
Flow session was expired |
A periodic task finds expired_at in the past for a session in CREATED, PROGRESS, or QR, adds a reason, and changes the session to FAILED. |
OTHER |
Too many sessions by fingerprint |
When fingerprint checking is enabled, the number of sessions for this Workflow with this fingerprint within Fingerprint timeout (seconds) exceeds Fingerprint timeout attempts, including the current record. The session immediately becomes FAILED. |
OTHER |
Dynamic text or no detail |
The client method for recording a session error accepts a description. Adding the reason does not itself change the status; the record causes FAILED during subsequent normal completion. |
EXPIRED |
Dynamic text or no detail |
The same input method allows the EXPIRED category; this does not guarantee that the expiration task ran. |
Liveness¶
Public block: liveness_result. Head Position, Short, Distance, Distance v2, Pro Max, and Core use a shared block. Its schema does not return the Liveness processing status.
Liveness calculation¶
The following reasons are generated automatically; they produce result: false and also set the processing status to FAILED.
type |
Exact detail |
Condition and meaning |
|---|---|---|
CALC_RESULT |
Mask Attack |
With Enable mandatory mask attack check: the mask attack check is negative. |
CALC_RESULT |
Closed eyes |
With Enable open eyes check: the eyes are closed in the detection. |
CALC_RESULT |
Low overall prediction |
The model result does not meet threshold. |
CALC_RESULT |
No face detected |
The model check fails when the detection has no model results, score, or face region. |
CALC_RESULT |
No VR scoring data |
VR cam scoring check is enabled, but the record containing the required VR-scoring data is missing. This means data for the check is missing, not that a virtual camera has been proven. |
VR_CAM |
VR Camera Attack |
With VR cam scoring check, the virtual camera check is negative. |
CALC_RESULT |
Several faces |
Reject liveness when several faces are detected in the frame is enabled, and the best detection has a known face count greater than one. |
CALC_RESULT |
Age is too low |
The integer part of the estimated age is below Age threshold, and the condition for manual review under Age manual threshold is not met. This reason is not created when no age estimate is available. |
CALC_RESULT |
Face comparison timeout |
With Enable face swap check during the process, a non-initial detection has no comparison result by the time of the final check. The category is specifically CALC_RESULT, not TIMEOUT. |
CALC_RESULT |
Face comparison failed |
With the same setting, a non-initial detection has a negative check result. |
These reasons produce result: false and the processing status FAILED. Liveness may select IN_REVIEW without a reason instead of rejecting borderline liveness or age scores; result is then absent from the public result. The check state is evaluated after waiting for the background calculations specified by the handler, not from a single intermediate frame.
Image integrity and client errors¶
type |
Exact detail |
Condition |
|---|---|---|
OTHER |
Incorrect image hash |
In production, the check linking the image to the session failed. A reason and result: false are stored; the Liveness result is also set to FAILED. |
Face2Face¶
Public block: face2face_result. It has no processing status.
type |
Exact detail |
Condition and effects |
|---|---|---|
CALC_RESULT |
Different faces |
The comparison is negative. When a configuration is available, the condition prediction >= threshold is used; otherwise, the service's decision is used. result: false. |
CALC_RESULT |
Several faces |
Fail if more than one face in frame is enabled and at least one image contains more than one face. Takes precedence over Different faces and forces result: false, even if similarity is sufficient. |
SERVICE_ERROR |
No face found |
The comparison service reports that no face was found. |
SERVICE_ERROR |
Can`t connect to face2face service |
Error calling the comparison service. |
OTHER |
Incorrect image hash |
The supplied image failed the hash check. The reason is saved before comparison; result may be absent. |
Document Recognition¶
Public block in the API and flow.end: document_recognition_v2_result. In the separate DR2 technology.end event, the handler uses the name data.document_recognition_result; do not confuse it with the DR v1 result structure.
Errors retrieving the result:
type |
Exact detail |
Condition; result and status |
|---|---|---|
SERVICE_ERROR |
Document recognition service not available now |
A caught API error while requesting / processing recognition; false, FAILED. |
CALC_RESULT |
Document not found |
The recognizer returns success: false with error.message exactly equal to Document not found; false, NOT_FOUND. |
SERVICE_ERROR |
Document recognition process was failed |
Another handled success: false response; false, FAILED. |
After successful recognition, Workflow restrictions are checked sequentially. The first triggered check creates a reason and sets result: false; the recognition status remains SUCCESS. This means the document was recognized successfully but rejected by the rules.
type |
Exact detail / template |
Condition |
|---|---|---|
CALC_RESULT |
Disallowed document country |
The non-empty list of countries allowed for verification has no overlap with the countries of the recognized document types. |
CALC_RESULT |
Disallowed document type |
The non-empty list of document types allowed for verification has no overlap with the recognized document types. |
CALC_RESULT |
Age is lower than minimal |
Minimum holder age is set, optical_checks.text is strictly false, and the selected age is below the minimum. The age from the visual zone is used first, with MRZ as a fallback if it is absent. This specific branch does not run without the text: false condition. |
CALC_RESULT |
Document is expired |
Reject expired documents is enabled and optical_checks.expiry is strictly false. |
CALC_RESULT |
MRZ is invalid. {missed_values} is missing. |
Reject documents with invalid MRZ is enabled, a non-empty MRZ JSON object is available, and required values are missing. {missed_values} is the string representation of a list of names with single quotes, for example ['date_of_birth']. The fields are checked in this order: mrz_type, nationality_code, first_name, last_name, document_number, sex, age, date_of_birth; a null value or an absent key counts as missing. |
CALC_RESULT |
Authenticity checks are not passed |
With Fail on authenticity check, at least one page authenticity check is strictly false: screen, black-and-white copy, graphic patterns, barcode, portrait comparison, or photo substitution. Missing data is not equivalent to false. |
E-Document¶
Public blocks: edocument_result and edocument_child_result. The branches below that save an error set result: false and status: "CANCELED". The session uses the general completion mechanism.
Access and document matching¶
| Block / operation | type |
Exact detail |
Condition |
|---|---|---|---|
| Regular E-Document, MCDB check | CLIENT |
Subject not found in MCDB |
The Mobile Citizens Database check did not find the user. is_subject_in_mcdb: false is also stored. |
| Regular / child, access request | CLIENT |
Profile is not found |
An external response reporting a missing profile, converted to HTTP 404 by the access handler. |
| Regular, retrieving the list of children | SERVICE_ERROR |
Profile is not found |
The same profile error, but the children list handler classifies all caught API errors as service errors. |
| Regular / child, access request | CLIENT |
Invalid IIN |
An external response reporting an invalid IIN is converted to a client error. |
| Regular, retrieving the list of children | SERVICE_ERROR |
Invalid IIN |
The same input data error in the children list handler. |
| Regular / child, access request | CLIENT |
Document does not exist |
The provider reported that the document does not exist. For a regular identity card with Alternative VNZH (Residence Permit) check, a residence permit may be requested first; a successful fallback does not create this reason. |
| Regular / child, confirmation and retrieval | CLIENT |
Document type is not the same as requested type |
The retrieved document type is not allowed for the request. Regular E-Document accounts for the permitted substitution of a residence permit for an identity card. |
| Regular E-Document | CLIENT |
IIN from document does not match requested IIN |
The requested and retrieved IINs are both known and do not match when the response is checked. |
| Child E-Document, retrieval by code | CLIENT |
Document owner is not the same as requested owner |
The non-empty requested full name, assembled in uppercase, does not match the owner's full name in the retrieved document. |
| Regular / child, access confirmation | CLIENT |
Access to document is not found or is not active |
Access was not found / is inactive. |
Service errors¶
Each entry below has type: "SERVICE_ERROR"; it applies to the regular or child block if the corresponding call is part of an operation that saves errors.
Exact detail |
Condition |
|---|---|
Can`t connect to E-Document service |
Connection error with the service. |
Could not send request to E-Document service |
An error sending / waiting for the request, converted by the handler to the corresponding exception. |
Government service error |
The government service response could not be parsed as the expected JSON; the category remains a service error, including for an exception with HTTP 424. |
E-Document service is not available now |
The provider returned a response classified as unavailability rather than a handled profile, document, or access error. |
Address¶
Public block: address_result.
Access confirmation response¶
type |
Exact detail |
Condition and effects |
|---|---|---|
CLIENT |
INVALID |
Negative access confirmation status; the same status is saved for the technology. |
CLIENT |
TIMEOUT |
Access confirmation timeout status; the category is not TIMEOUT. |
CLIENT |
NOT_FOUND |
KDP returned a not-found status. |
CLIENT |
FAILED |
KDP returned FAILED. |
Token and address requests¶
| Operation | type |
Exact detail |
Condition |
|---|---|---|---|
| KDP token | SERVICE_ERROR |
Can`t connect to kdp service |
Connection error when requesting the token. |
| KDP token | SERVICE_ERROR |
Invalid IIN |
KDP returned an invalid IIN response. |
| KDP token | SERVICE_ERROR |
Could not send request to address service |
Another unsuccessful HTTP response from KDP. |
| Address retrieval | CLIENT |
Token Expired |
The token has already expired. |
| Address retrieval | SERVICE_ERROR |
Could not send request to address service |
An unsuccessful address request, converted to a service exception. |
GBDFL¶
Public block: gbdfl_result. The initial record may have result: false without an error. Common token request errors are the same as for Address:
| Operation | type |
Exact detail |
Condition |
|---|---|---|---|
| Token | SERVICE_ERROR |
Can`t connect to kdp service |
Connection error with KDP. |
| Token | SERVICE_ERROR |
Invalid IIN |
KDP returned an invalid IIN response. |
| Token | SERVICE_ERROR |
Could not send request to address service |
Another unsuccessful HTTP response from KDP. |
| Data | SERVICE_ERROR |
Can`t connect to GBDFL service |
Connection error with the GBDFL service. |
| Data | SERVICE_ERROR |
A server error occurred. |
An unsuccessful HTTP response during data retrieval creates a generic exception; its default description is stored, not the provider's response body. |
type |
Exact detail |
Condition and effects |
|---|---|---|
CLIENT |
INVALID |
KDP status INVALID; a reason and a negative result are stored. |
CLIENT |
NOT_FOUND |
KDP status NOT_FOUND; the reason does not specify what was not found. |
CLIENT |
FAILED |
KDP status FAILED. |
CLIENT |
TIMEOUT |
KDP status TIMEOUT is immediately stored as a reason. |
SERVICE_ERROR |
GBDFL token request timed out multiple times |
A repeated TIMEOUT while the previous timeout marker is retained (300 seconds); result: false, status FAILED. The first TIMEOUT allows further polling and does not create this reason. |
TIMEOUT |
Session polling timeout exceeded |
A result record exists and more than 300 seconds have elapsed since the stored polling start time; result: false, status FAILED. |
For rejected statuses, the KDP response status is saved; the session usually completes through the general mechanism.
GBDUL¶
Public block: gbdul_result.
type |
Exact detail |
Condition and effects |
|---|---|---|
SERVICE_ERROR |
Cannot connect to GBDUL service |
A request error or provider response classified as unavailability. Usually result: false, FAILED. With Complete flow successfully on service error: true, the result is result: true, ERROR_ACCEPTED, and the reason is retained. |
SERVICE_ERROR |
Organization not found in GBDUL |
A handled response reporting that the organization was not found. result: false, FAILED; allowing unavailability does not accept a missing organization. The category is specifically a service error, although the original exception has HTTP 404. |
The ability to complete the technology with ERROR_ACCEPTED does not guarantee a positive flow_session_result.
PPS¶
Public block: pps_result.
| Operation | type |
Exact detail |
Condition and effects |
|---|---|---|---|
| Polling | TIMEOUT |
Session polling timeout exceeded |
A result exists and more than 300 seconds have elapsed since the stored polling start time; false, FAILED. |
| Token | SERVICE_ERROR |
PPS token request timed out multiple times |
A repeated TIMEOUT status within the marker's 300-second lifetime; false, FAILED. The first such response allows further polling without a new reason. |
| Token | CLIENT |
INVALID |
Negative KDP status; result: false. |
| Token | CLIENT |
NOT_FOUND |
KDP status indicating that data was not found; result: false. |
| Token | CLIENT |
FAILED |
KDP status FAILED; result: false. |
| Token | SERVICE_ERROR |
Can`t connect to kdp service |
Connection error with KDP; false, FAILED. |
| Token | SERVICE_ERROR |
Invalid IIN |
KDP returned an invalid IIN response; false, FAILED. |
| Data | CLIENT |
Can`t connect to PPS service |
A request error or HTTP 5xx; false, FAILED. |
| Data | CLIENT |
PPS data is rejected |
Data retrieval from the provider is unavailable; its response body is not stored in detail, and the default message is used; false, FAILED. |
| Data | CLIENT |
IIN data not found |
The subject with this IIN was not found; false, FAILED. |
| Data | CLIENT |
PPS token request timed out |
The time limit for receiving the token was exceeded; false, FAILED. Both the text and category differ from those of the repeated token timeout. |
| Data | SERVICE_ERROR |
A server error occurred. |
Another unsuccessful HTTP response; the default description of the generic exception is used instead of the PPS error: ... text generated in the service; false, FAILED. |
For INVALID, NOT_FOUND, and FAILED, the corresponding KDP response status is saved.
RPN¶
Public block: rpn_result. The reasons below produce result: false; call errors produce FAILED, while a rejected KDP status is saved as the technology status.
| Operation | type |
Exact detail |
Condition |
|---|---|---|---|
| Token | CLIENT |
INVALID |
KDP returned INVALID. |
| Token | CLIENT |
TIMEOUT |
KDP returned TIMEOUT. |
| Token | CLIENT |
NOT_FOUND |
KDP returned NOT_FOUND. |
| Token | CLIENT |
FAILED |
KDP returned FAILED. |
| Token | SERVICE_ERROR |
Can`t connect to kdp service |
Connection error with KDP. |
| Token | SERVICE_ERROR |
Invalid IIN |
KDP returned an invalid IIN response. |
| Data | SERVICE_ERROR |
Can`t connect to RPN service |
Error requesting registry data. |
| Data | SERVICE_ERROR |
RPN service error |
An unsuccessful HTTP response or missing required data in the registry response. |
NPCK¶
Public block: npck_result.
type |
Exact detail |
Condition |
|---|---|---|
CALC_RESULT |
Different faces |
The received comparison decision is negative; the received prediction score is also stored. |
CLIENT |
Invalid data passed |
The service received invalid data. |
CLIENT |
Credentials not provided |
Credentials error. |
SERVICE_ERROR |
NPCK service unavailable |
Another handled HTTP error. |
KZ Info¶
Public block: kz_info_result, without a boolean result.
type |
Exact detail |
Condition and meaning |
|---|---|---|
CALC_RESULT |
Existence in the debtor register |
Session failure on debtor presence is enabled and exec_proc_info is non-empty. Workflow rules reject the presence of enforcement proceedings, even though data may have been retrieved successfully (RECEIVED). |
SERVICE_ERROR |
Exec proc info request failed |
Session failure on debtor registry error is enabled and exec_proc_info_status: "FAILED". |
ERD¶
Public block: erd_result, without a boolean result.
type |
Exact detail |
Condition and meaning |
|---|---|---|
CALC_RESULT |
Existence in the debtor register |
Session failure on debtor presence is enabled and result_json is non-empty. Registry records prohibited by the Workflow setting were found. |
SERVICE_ERROR |
Exec proc info request failed |
Session failure on debtor registry error is enabled and the request status is FAILED. Despite its text, the reason applies to ERD. |
AML¶
Public block: aml_result, without a separate status.
type |
Exact detail |
Condition and effects |
|---|---|---|
CLIENT |
personal_number and full_name not found |
Neither a personal number nor a full name could be obtained for the request, and Fail on error is enabled; result: false. |
REQUEST_ERROR |
AML request failed |
A caught HTTP error in an AML request with Fail on error; result: false. |
When Fail on error is disabled, these handled errors produce result: true without a new reason. When a match is found and Fail when found in sanctions lists is enabled, result: false is stored without a failure_reason. If rejection on matches is disabled, the result may be true even when matches are present. The handler does not cover every unexpected provider exception: the text of an arbitrary failure cannot be treated as a new public reason.
MRZ¶
Public block: mrz_result.
type |
Exact detail / source |
Condition and effects |
|---|---|---|
REQUEST_ERROR |
MRZ request failed |
Flow caught an MRZ service unavailability error: a request error, an unexpected HTTP status, or the corresponding response variant. result: false, REQUEST_FAILED. |
CLIENT |
Error while parsing MRZ or dynamic text |
MRZ recognition / validation error. result: false, PARSE_FAILED. |
MxDocument¶
Public block: mxdocument_result, without a processing status. All listed automatic reasons have SERVICE_ERROR and produce result: false.
Exact detail |
Condition |
|---|---|
Cannot connect to MX-Document service |
Connection error. |
Cannot decode MX-Document response |
The response JSON could not be decoded. |
MX-Document extraction failed |
Error retrieving data from the provider. |
MX-Document service not available |
Another handled unsuccessful HTTP response. |
Tunduk¶
Public block: tunduk_result, without a processing status. A passport request error stores result: false.
type |
Exact detail / source |
Condition |
|---|---|---|
CLIENT |
Passport not found in Tunduk system |
The document was not found in the Tunduk system. |
CLIENT |
Provider response data | Input data validation errors. |
SERVICE_ERROR |
Can`t connect to Tunduk service |
Connection error. |
SERVICE_ERROR |
Can`t connect to service via Timeout |
A request timeout converted to HTTP 408; the category is specifically a service error. |
SERVICE_ERROR |
Tunduk service is not available now |
Another unsuccessful HTTP response. |
IP checks¶
Public array: ip_check_results[]. All supplied addresses are checked; reasons for one item do not replace checking the other items. Use the boolean result rather than trying to infer the outcome from a single verdict.
Data retrieval¶
type |
Exact detail |
Condition and effects |
|---|---|---|
REQUEST_ERROR |
No IP addresses were found |
The IP list is empty. A negative result with verdict: "suspicious" is created regardless of Fail on error. |
SERVICE_ERROR |
No providers available |
No available provider was created. Negative results for the addresses, suspicious, regardless of Fail on error. |
REQUEST_ERROR |
All provider requests failed |
No parsed data is available for all IPs or for an individual IP, and Fail on error is enabled. result: false, suspicious. |
Checking the retrieved indicators¶
Checks run in table order; the first triggered check is selected. The reason produces result: false, usually with verdict: "blocked" when data is available.
type |
Exact detail |
Condition |
|---|---|---|
CLIENT |
VPN detected |
Reject VPN and proxy IP addresses and a VPN indicator. |
CLIENT |
Proxy detected |
Reject VPN and proxy IP addresses and a proxy indicator, if the VPN check did not trigger. |
CLIENT |
Datacenter detected |
Reject data center IP addresses and a hosting indicator. |
CLIENT |
High risk score |
The integer risk exceeds the configured threshold. |
CLIENT |
Country mismatch: {country_code} |
Block on IP country mismatch, the regular E-Document technology is active, and the IP country is not KZ. If the code is missing, the text may contain None. This compares against the expected KZ, not the nationality read from the document. |
If this function is called, it changes only previously positive IP results: it sets false and a reason but does not change verdict. A record with verdict: "ok" and a country error is therefore possible by design, but an active path that creates it through this function has not been confirmed.
Questionnaires¶
Public array: questionnaire_results[].
type |
Exact detail |
Condition and effects |
|---|---|---|
CLIENT |
Required questions were not answered |
When the questionnaire is submitted, stored answers to required questions are missing. result: false, processing status FAILED. |
One-time code (OTP)¶
Public array: otp_results[].
type |
Exact detail / template |
Condition and effects |
|---|---|---|
CALC_RESULT |
phone_number_missing |
No phone number was supplied in the request or found in metadata.otp.phone_number. A record is created with an empty phone number string, result: false, and status: "failed". |
SERVICE_ERROR |
Telegram Gateway error: {error} |
During code verification, the gateway returned ok: false; {error} is the response's error value or the fallback unknown error. result: false, failed. |
CALC_RESULT |
expired |
During verification, the provider reported expiration; result: false, expired. |
CALC_RESULT |
revoked |
The provider reported revocation; the local result also has result: false, expired, not cancelled. |
CALC_RESULT |
Dynamic provider status | Verification is negative, the status is not expired/revoked, and Maximum attempts has been reached after incrementing the attempt count. result: false, wrong_code; detail preserves the source status. |
DS Identifier / DS NPCK / DS Signer¶
Public blocks: ds_identifier_result and ds_signer_result. DSI and DSN use a shared identification block. These blocks do not return Digital Signature processing statuses.
DSI / DSN identification¶
In branches that save the error, result: false and processing status FAILED are set.
| Variant | type |
Exact detail |
Condition |
|---|---|---|---|
| DSI | CLIENT |
Digital Signature invalid input |
The Digital Signature service rejected input data in an operation that uses this response mapping. |
| DSI / DSN | CLIENT |
Digital Signature Organization does not exist |
The service reports that the organization does not exist when retrieving / creating a client. |
| DSI / DSN | CLIENT |
Digital Signature Client does not exist |
A response reporting that the client does not exist when working with an organization's client. |
| DSI / DSN | CLIENT |
Digital Signature Organization Client does not exist |
A response reporting that the client is not linked to the organization. |
| DSI, document upload | CLIENT |
Digital Signature Identity card does not exist |
The document is missing when uploading data to Digital Signature. During initial document retrieval, this error is caught separately and initiates an access request, without a failure reason. |
| DSI | CLIENT |
Document type is not the same as requested type |
Access confirmation returned a document that is neither an identity card nor a residence permit. |
| DSI | CLIENT |
IIN from document does not match requested IIN |
During confirmation, the known IINs in the request and the retrieved document differ. |
| DSI / DSN | SERVICE_ERROR |
Cannot connect to Digital Signature service |
A connection error caught in a Digital Signature service operation. |
| DSI / DSN | SERVICE_ERROR |
Digital Signature service is not available now |
Another handled unsuccessful response from the Digital Signature service. |
| DSN, GBDFL upload | SERVICE_ERROR |
Could not upload Gbdfl data |
An HTTP error while uploading GBDFL data, converted to this exception. |
DSS signing¶
Stored certificate initialization, reissuance, and signing errors produce result: false and processing status FAILED.
| Operation | type |
Exact detail / source |
Condition |
|---|---|---|---|
| Certificate initialization / signing | SERVICE_ERROR |
Can`t connect to Digital Signature Signer service |
Connection error with the signing service. |
| Certificate reissuance | SERVICE_ERROR |
Cannot connect to Digital Signature service |
Connection error during reissuance; the identification service's message is used. |
| Certificate / signing | SERVICE_ERROR |
Digital Signature Signer service is not available now |
Provider server error. |
| Certificate / signing | CLIENT |
Dynamic response message; fallback Digital Signature Signer client organization not found |
Provider HTTP 404. |
| Certificate / signing | CLIENT |
Dynamic response message; fallback Digital Signature Signer MS Cloud service has troubles with handling this request |
Another provider HTTP 4xx. |
| Document upload | SERVICE_ERROR |
Can`t connect to Digital Signature Signer service |
Connection error during upload. |
| Document upload | SERVICE_ERROR |
Digital Signature Signer service is not available now |
Server error during upload. |
| Document upload | SERVICE_ERROR |
Dynamic response message; the same fallback messages about the organization / MS Cloud |
HTTP 4xx during upload. |
During certificate reissuance, known provider messages are translated before being saved. For 4xx responses, the category is CLIENT:
Exact public detail |
Condition: original provider message |
|---|---|
Password already set |
Пароль для пользователя уже установлен |
Digital Signature invalid OTP code |
Неверный код подтверждения |
Digital Signature too many invalid OTP codes |
Неверный код подтверждения. Количество попыток ввода кода подтверждения исчерпано. |
Digital Signature OTP code not found |
Код подтверждения не найден - прошло много времени с момента отправки коды подтверждения. Либо количество попыток исчерпано |
This mapping does not guarantee that the provider returns every message specifically during reissuance. It defines the conversion if such a message is received in this operation; other messages are saved as received.
During certificate acceptance, the same translation is applied, but no new failure reason is saved. During signing, a message containing неверный пароль, matched case-insensitively, becomes the HTTP error Digital Signature incorrect certificate password without a new reason and without changing the record to FAILED; this allows the password to be corrected and the call retried while the other conditions remain satisfied. Invalid verification code from the old page has not been confirmed as a fixed reason in the current code.