Error response format
Every error from the SDK follows this structure:{
"responseType": "INITIATE | VERIFY | FAILED",
"statusCode": 400,
"response": {
"errorCode": "7101",
"errorMessage": "Request error: Invalid parameters values or Required parameters are missing."
}
}
| Field | Description |
|---|---|
responseType | Phase where the error occurred: INITIATE, VERIFY, or FAILED. |
statusCode | Numeric status code identifying the error category. |
response.errorCode | Machine-readable error code. Use this to handle errors programmatically. |
response.errorMessage | Human-readable description of the error. |
Error Codes
- Authorization
- Rate Limiting
- Request Validation
- Authentication
- Network & Connectivity
- Server Errors
| errorCode | statusCode | responseType | Message | Description |
|---|---|---|---|---|
401 | 401 | INITIATE | UnAuthorized request! Please check your appId. | App ID is invalid or unauthorized. Verify your credentials. |
7025 | 401 | INITIATE | SMS delivery to this country is not enabled. Contact OTPLESS team to activate. | SMS is not enabled for this country. Contact the OTPless team to activate. |
7035 | 401 | INITIATE | Access blocked. | The mobile number belongs to a country that is currently not supported. |
| errorCode | statusCode | responseType | Message | Description |
|---|---|---|---|---|
7020 | 429 | INITIATE | Authentication Rate Limited reached. Please try again after some time. | Too many authentication requests in a short period. Wait before retrying. |
7022 | 429 | INITIATE | The identity associated with this request has exceeded the allowed number of authentication requests. | This phone number or email has hit the per-identity rate limit. |
7023 | 429 | INITIATE | The IP associated with this request has exceeded the allowed number of authentication requests. | This IP address has exceeded the allowed request count. |
7024 | 429 | INITIATE | The application has exceeded the allowed number of authentication requests. | The entire application has hit its authentication request limit. |
| errorCode | statusCode | responseType | Message | Description |
|---|---|---|---|---|
4000 | 4000 | INITIATE | The request values are incorrect, see details. | Request values do not match the expected format. |
4002 | 4002 | INITIATE | The request parameters are incorrect, see details. | Request parameters are invalid. Review the API documentation. |
4003 | 4003 | INITIATE | The request channel is incorrect. | The specified channel is not supported or not enabled in the dashboard. |
7101 | 400 | INITIATE | Invalid parameters values or Required parameters are missing. | Required fields are missing or have invalid values. Check all request fields. |
7102 | 400 | INITIATE | Invalid phone number. | Phone number is incorrectly formatted. Include the country code. |
7103 | 400 | INITIATE | Invalid phone number delivery channel. | The delivery channel (SMS, WhatsApp etc.) is not valid for this phone number. |
7104 | 400 | INITIATE | Invalid email. | Email address is incorrectly formatted. |
7105 | 400 | INITIATE | Invalid email channel. | The delivery channel for email is not supported. |
7106 | 400 | INITIATE | Invalid phoneNumber or email. | Either the phone number or email provided is missing or invalid. |
7112 | 400 | VERIFY | Empty OTP. | OTP field is empty. Ensure the OTP is included in the verify request. |
7113 | 400 | INITIATE | Invalid expiry. | Expiry value is invalid or out of allowed range. |
7114 | 400 | VERIFY | Invalid token. | The token provided is invalid or does not match any active session. |
7116 | 400 | INITIATE | OTP Length is invalid. 4 and 6 only allowed. | OTP length must be 4 or 6 digits. |
7121 | 400 | INITIATE | Invalid app hash. | The app hash is invalid or incorrectly formatted. |
7136 | 400 | INITIATE | Invalid requestId. | The requestId provided is invalid or malformed. |
7158 | 400 | INITIATE | Invalid template id. | The template ID provided is invalid or not found. |
7168 | 404 | INITIATE | No data found for request id. | No data was found for the provided requestId. |
7172 | 400 | INITIATE | Request id is expired. | The requestId has expired. Initiate a new request. |
| errorCode | statusCode | responseType | Message | Description |
|---|---|---|---|---|
7038 | 401 | VERIFY | Access blocked. | Failed to authenticate. Please try again. |
7042 | 401 | VERIFY | Access blocked. | SSO authentication was rejected by the user. |
7115 | 400 | VERIFY | OTP is already verified. | This OTP has already been used. Request a new OTP. |
7118 | 400 | VERIFY | Incorrect OTP. | The OTP entered does not match. Check and retry. |
7160 | 400 | INITIATE | User Verification failed. | Silent authentication failed to initialize. |
7169 | 400 | VERIFY | SNA is already verified. | This Silent Network Authentication session has already been verified. |
7303 | 400 | VERIFY | OTP expired. | The OTP has expired. Request a new one and retry. |
7304 | 400 | VERIFY | Authentication expired. | The authentication session has expired. Initiate a new request. |
9002 | 9002 | INITIATE | TYPE_INTERRUPTED | Passkey operation was interrupted before it could complete. |
9003 | 9003 | INITIATE | TYPE_NO_CREDENTIAL | No passkey credentials are available for the requested operation. |
9004 | 9004 | INITIATE | TYPE_UNKNOWN | An unknown error occurred during the passkey operation. |
9005 | 9005 | INITIATE | TYPE_USER_CANCELED | User cancelled the passkey authentication process. |
9006 | 9006 | INITIATE | TYPE_NO_CREATE_OPTIONS | No passkey creation options are available. |
9007 | 9007 | INITIATE | TYPE_NOT_ALLOWED_ERROR | Passkey operation is not allowed due to security restrictions. |
9008 | 9008 | INITIATE | TYPE_TIMEOUT_ERROR | The passkey operation timed out before completing. |
9009 | 9009 | INITIATE | TYPE_CONSTRAINT_ERROR | A constraint was violated during the passkey authentication process. |
| errorCode | statusCode | responseType | Message | Description |
|---|---|---|---|---|
5003 | 5003 | INITIATE / VERIFY / FAILED | Failed to fetch. | Request could not be sent due to a connectivity issue. |
5005 | 5005 | INITIATE / VERIFY | Request timeout. | Server did not respond within the timeout window. Retry. |
5006 | 5006 | INITIATE / VERIFY | Failed to fetch response. | Response could not be retrieved for the request. |
9100 | 9100 | INITIATE / VERIFY | Socket timeout exception / Request Timeout. | Request failed due to a socket timeout. Retry on a stable network. |
9101 | 9101 | INITIATE / VERIFY | Network Connection Was Lost. | Connection was interrupted before the request completed. |
9102 | 9102 | INITIATE / VERIFY | DNS Lookup Failed. | Domain name could not be resolved. Check DNS settings. |
9103 | 9103 | INITIATE / VERIFY | Unknown Host Exception / Cannot Connect to Server. | Host is unknown or server is unreachable. |
9104 | 9104 | INITIATE / VERIFY | IO Exception / No Internet Connection. | I/O exception or device has no internet connection. |
9105 | 9105 | INITIATE / VERIFY | Secure Connection Failed (SSL issue). | SSL/TLS handshake failed. Check certificate configuration. |
9106 | 9106 | INITIATE | Transaction timeout. | Transaction timed out. Restart the authentication flow. |
9110 | 9110 | INITIATE / VERIFY | OTPless authentication request cancelled. | Authentication request was cancelled by the user or system. |
| errorCode | statusCode | responseType | Message | Description |
|---|---|---|---|---|
500 | 500 | INITIATE / VERIFY / FAILED | Something went wrong! Please try again. | An unexpected server error occurred. Retry the request. |
4001 | 4001 | INITIATE | OTPless SDK doesn’t support 2FA as of now. | Two-factor authentication is not supported. |
5900 | 5900 | INITIATE | Feature is not supported — requires iOS version X and above. | The feature requires a newer iOS version. Ask the user to update their device. |