Skip to main content
These are the errors the OTPless Headless SDK reports on the client via its callbacks during the SNA-only flow. They are surfaced in the SDK response — on FAILED (initialization), on a non-200 INITIATE, or on AUTH_TERMINATED.
These are client/SDK errors. For the server-side verification outcome (SP* codes in auths[].error) and gateway request errors, see API Error Codes. The SDK callback is not the source of truth — always confirm the final result with the Status Check API.

Error response structure

  • responseType — the callback the error arrived on. Errors are carried only on FAILED, INITIATE, and AUTH_TERMINATED. (SDK_READY and ONETAP are success callbacks and never carry an error.)
  • statusCode — the HTTP status or an OTPless-curated status code.
  • errorCode — the OTPless error code (see tables below).
  • errorMessage — a human-readable description of the error.

AUTH_TERMINATED errors

In the SNA-only flow, a terminal failure is delivered on the AUTH_TERMINATED callback. Common to Android and iOS.
7160 first surfaces on an INITIATE callback (with the error code) and is then followed by AUTH_TERMINATED; 7161 is delivered directly on AUTH_TERMINATED. In an SNA-only configuration there is no fallback channel — treat both as terminal and rely on the Status Check API result.

SNA verification errors

Outcomes from carrier verification (the silent-auth status). In an SNA-only flow these surface on the INITIATE (with error code) and AUTH_TERMINATED callbacks. Common to both platforms unless noted.
A timeout or exhausted poll ends the flow on AUTH_TERMINATED (7161).

Initialization errors

Reported on the FAILED callback when the SDK cannot initialize. Common to both platforms.

Request & configuration errors

Surfaced on the INITIATE callback when statusCode != 200. Common to both platforms unless noted.

Transaction state errors

Surfaced on the INITIATE callback when the request or token has expired. Call start() again with a fresh requestId.

Rate-limit errors

Surfaced on the INITIATE callback with statusCode 429. Common to both platforms.

Device precondition errors

SNA requires an active cellular (mobile) data connection. If mobile data is off, the SDK reports this before attempting silent auth. Common to both platforms.
SP40000 is raised only in the SNA flow — because silent auth depends on a cellular data connection. It does not occur for OTP or any other channel.

Network connectivity errors (iOS)

iOS surfaces granular network errors via the INITIATE response. On Android, a network failure during silent auth is not reported with a distinct code in an SNA-only flow — it ends the flow on AUTH_TERMINATED (7160 / 7161).