Handling Errors

SDK Errors

Backend SDKs

Exceptions

The backend SDKs will throw an exception (or your language's equivalent) when the API returns a non-200 status code.

Alongside the status code, the HTTP response content will contain a human-readable explanation of the reason for failure.

An exception will also be thrown if an HTTP request itself fails (e.g. due to a network failure).

Frontend and Mobile SDKs

User Cancelation

If a user cancels a Session (e.g. by hitting the "close" button), no exception will be thrown, as this is not considered an error state.

Instead, the asynchronous call to launch the Session will resolve with a result indicating that the user requested cancellation.

Exceptions

📘

Info

Session failures (e.g. expiration, failed authenticity checks, or user cancellation) do not result in exceptions being thrown in the frontend SDKs.

Instead, the failure reason will be available on the Session object itself, as described in Session Failure.

The frontend and mobile SDKs primarily throw exceptions in the following circumstances:

  • Invalid callbackUrl provided to Mobile SDK
    • If your mobile application has not been properly configured with a custom scheme as described in the mobile SDK documentation, an exception will be thrown
  • Underlying OS/browser API failure
    • For example, if the user's browser blocks a popup launch

Session Failure

Sessions can fail (indicated by the Failed state) for a number of reasons, ranging from expiration to failed authenticity checks.

Session Fail Code

When a Session is in the Failed state, the reason for failure is present in the FailCode property of the Session object.

Fail CodeDescription
NoneThe Session has not failed
InternalAn internal error has caused the Session to fail
VerificationFailedA verification failure (invalid/unreadable images, mismatched selfie, etc.) has caused the Session to fail. See Verification Fail Code for further information.
AuthenticationThe user exceeded limits on authentication attempts
ExpiredThe Session expired
UserCanceledThe user canceled the Session
RpCanceledThe Relying Party (you) canceled the Session via the CancelSession call

Verification Fail Code

If a Session's failure reason is Verification-related (that is, the user's attempt to verify themselves with a specific ID provider failed), its FailCode will be set to VerificationFailed, and additional information will be present on the Verification.FailCode property of the Session object.

Verification Fail Code
NoneThe Session either did not fail, or its failure was unrelated to a Verification
InternalAn internal error caused the Verification to fail
InvalidImageThe user provided an image that could not be processed (low quality, blurry, not of an ID document, etc.)
InauthenticThe identity provider rejected the Verification attempt as potentially fraudulent
UnsupportedDocumentThe document provided by the user is not in the list of supported documents