Android SDK unhappy paths

Last updated: October 28, 2024

There are several possible unhappy paths in the iProov claim process. It is essential that you provide user guidance, directions, and education to ensure successful retries and to prevent drop offs.

There are three types of unhappy responses during a claim lifecycle:

See the implementation examples on GitHub: https://github.com/iProov/android/#handling-failures--errors

Select an SDK version

To display exceptions, errors, and failures that are applicable to your environment, select a version of the Android SDK:

Launch exceptions

These are exceptions that should be caught when calling launch() and prevent the SDK from launching.

Exceptions (launch()) Description Suggested resolution action
ListenerNotRegisteredException The iProov listener has not been registered or thelaunch()method is called before callingregisterListener().

Verify that the listener is registered.

iProov recommends registering in the onCreate() method.

MultiWindowUnsupportedException The user attempted to use iProov in split-screen/multi-screen mode (not supported).

Display an appropriate error message and instruction to the user.

Try and relaunch.

CaptureAlreadyActiveException An iProov capture is already in progress. Wait until the current iProov claim has completed and try again.

Errors

An error occurs when a user is unable to complete an iProov verification process. For example, the internet connection failed or the user aborted the process.

Corrective measures, user guidance, and retries should be implemented.

Exceptions (onError) Description Suggested resolution action
CameraException An error occurred acquiring or using the camera. Applicable when using the external camera support. Fatal exception, end the journey.
CameraPermissionException The user did not allow access to the camera when prompted. Prompt the user to enable the camera permission (in Settings).
FaceDetectorException An error occurred with the face detector.

Fatal error:

UnexpectedErrorException An unrecoverable error has occurred during the transaction.

A fatal error has occurred, attempt a retry.

Report clusters of this error type to iProov support.

ServerException The token was invalidated server-side or some other unrecoverable server error occurred.

End the journey and display this message: Try again later.

NetworkException An error occurred with communications to the server. Typically indicates a device connectivity issue, for example, the user's session has timed out or the internet service has been lost. Prompt the user to reconnect to a suitable cellular or WiFi network and then retry.
UnsupportedDeviceException The device is not supported, for example, does not have a front-facing camera.

End the journey and provide steps for the user to restart on a compatible device.

Direct the user to an FAQ or support channel detailing the device requirements.

InvalidOptionsException An error occurred when trying to apply your options. Log and report device details to iProov.

Failures

A failure occurs when iProov successfully processes a claim but a user's face cannot be authenticated. For example, the user did not pass the biometric tests and/or machine learning models.

Retry measures are recommended, however, caution should be taken to ensure that potential fraudsters are not given unlimited attempts. For details see API retry mechanism.

Exceptions (onFailure) Description Suggested resolution action Assurance types
unknown The claim failed for an unknown reason. Try again. GPA and LA
too_much_movement The user is moving too much during the claim. Keep still. GPA
too_bright

Possible causes:

  • Too much light has been detected on the user’s face.

  • A strong light source has been detected behind the user.

  • The ambient light is too strong or the screen brightness is too low.

Move somewhere darker.

GPA

Available soon in LA.

too_dark The user’s environment is too dark. Move somewhere brighter.

GPA

Available soon in LA.

misaligned_face User's face is not aligned with the oval. Keep your face in the oval. GPA
eyes_closed One or both of the user's eyes are not open. Keep your eyes open.

GPA

Available soon in LA.

face_too_far The user is too far from the device. Move your face closer to the screen. GPA
face_too_close The user is too close to the device. Move your face farther from the screen. GPA
sunglasses The user is wearing glasses with dark lenses. Remove sunglasses.

GPA

Available soon in LA.

obscured_face The user's face is not completely visible. Remove any face coverings.

GPA

Available soon in LA.

user_timeout Try again.   GPA and LA
not_supported Device is not supported.   GPA and LA
ambiguous_outcome

A claim reject status, either GPA/LA or a face match reject (if applicable).

Warning

Could indicate a fraudulent attempt.

If in the retry attempt quota, offer a retry.

 
motion_too_much_movement The user is moving too much during the claim.

Provide user guidance to remain still during the claim.

Retry the claim.

 
lighting_flash_reflection_too_low The ambient light is too strong or the screen brightness is too low.

Ask the user to turn their screen brightness up to maximum or move out of the direct sunlight.

Retry the claim.

See also: Customize the Android user interface

 
lighting_backlit A strong light source has been detected behind the user.

Ask the user to adjust their position relative to the light source.

Retry the claim.

 
lighting_too_dark The user’s environment is too dark.

Ask the user to move to an area with more light.

Retry the claim.

 
lighting_face_too_bright Too much light has been detected on the user’s face.

Ask the user to adjust their position relative to the light source.

Retry the claim.

 
motion_too_much_mouth_movement The user is talking during the claim.

Ask the user to refrain from speaking during the claim process.

Retry the claim.

 
failure_user_timeout The session has expired.

Verify that the user timeoutSecs setting has not been set to a value lower than recommended.

If data indicates a poor network, offer a retry with a higher timeout value.

 
Recommendation

See the iProov recommendations for retrying claims.

Next step

Android cleanup