Abrova
☰ Docs menu · Error codes

Error Codes

Every error code Abrova Auth returns, with its HTTP status, what it means and what your app should do, plus the codes the SDKs add themselves (network errors, not configured, cancelled).

Last updated: 27 Oct 2026
Error codes.

Every failed call has a stable code. Show your users messages based on the code, in their language. The message that comes with it is an English hint for developers: it never contains a secret or an e-mail address, and it may change.

How errors arrive#

SDKError typeCode field
FlutterAbrovaAuthException (AbrovaProviderAlreadyLinkedException for linking)code, compare with AbrovaAuthErrorCode
iOSAbrovaAuthErrorcode, for example .invalidCredentials
AndroidAbrovaAuthExceptioncode, compare with AbrovaAuthErrorCode
Web, React NativeAbrovaAuthError (check with isAbrovaAuthError)code, for example 'INVALID_CREDENTIALS'

Over a rate limit, the error also carries the wait: retryAfterSec (iOS, Android, Web, React Native) or retryAfter (Flutter).

Codes from Abrova Auth#

CodeHTTPMeaningWhat to do
INVALID_INPUT400A field is missing or malformed: e-mail, phone format, a nonce shorter than 16 characters, a redirectUrl that is not one of your link addresses.Fix the request. A fields object may name the field.
INVALID_API_KEY401The API key is unknown.Use the public key from Abrova Auth › Setup.
PRODUCT_DISABLED403Abrova Auth is not turned on for the project.Turn it on under Settings › Products.
METHOD_DISABLED403This sign-in method is off for the project.Turn it on, or hide the button (use getMethods).
NOT_CONFIGURED400 / 503The method is on but not set up (no Apple or Google ids, no Telegram bot), or e-mail delivery is unavailable (503).Finish the setup in the Console. For 503, try again later.
INVALID_CREDENTIALS401Wrong e-mail or password, or a wrong or expired Telegram code.Ask the user to check and try again.
EMAIL_TAKEN409Another user has this e-mail.Offer sign-in or password reset.
EMAIL_NOT_VERIFIED403The project requires a verified e-mail and this one is not verified.Ask the user to open the verification e-mail; offer to send it again.
WEAK_PASSWORD400The password is too short, longer than 128 characters, or very common.Ask for a longer, less common password.
INVALID_ID_TOKEN401The Apple or Google ID token is not valid for this project: wrong app id, expired, older than 10 minutes, or the nonce does not match.Check the ids in the Console and the nonce handling.
NONCE_REUSED401This nonce was already used for a sign-in.Create a new nonce for every sign-in.
PROVIDER_ALREADY_LINKED409Linking: the Apple or Google account belongs to another user.Offer to sign in to that account instead.
TOKEN_INVALID400 / 401An e-mail link token is invalid, used or expired (400), or the refresh token is unknown (401).Ask for a new link, or sign in again.
SESSION_EXPIRED401The session ran out (60 days unused, or 1 year old).The SDK signs out. Ask the user to sign in.
SESSION_REVOKED401The session was ended: sign-out everywhere, password reset, or a reused refresh token.The SDK signs out. Ask the user to sign in.
USER_DISABLED403You disabled this user in the Console.The SDK signs out. Tell the user the account is disabled.
UNAUTHENTICATED401The call needs a signed-in user and there is none (or the access token is not valid).Sign in first.
RATE_LIMITED429Too many attempts, or the daily limit of new anonymous users.Wait retryAfterSec, then try again.
MAU_LIMIT403This month's free 1,000 monthly active users are used up, the wallet has no balance to pay for more, and this user is new this month.Show a friendly message. Top up the wallet to let new users in.
LIMIT_REACHED403A feature needs a wallet balance (for example the usage insights API). Not returned by sign-in calls.Top up the wallet.
INTERNAL500 / 503Something went wrong on the Abrova side.Try again later.

Codes the SDKs add#

These come from the SDK, not from Abrova Auth: there was no answer, or the problem is on the device.

CodeSDKMeaning
NETWORK_ERRORAllNo answer (offline, timeout). The session is kept; try again.
UNKNOWNFlutter, Web, React NativeThe answer could not be read.
INVALID_RESPONSEiOS, AndroidThe answer could not be read.
SDK_NOT_CONFIGUREDiOS, Androidconfigure() was not called first.
NOT_SIGNED_INiOS, AndroidstrictTokenProvider or a signed-in call with nobody signed in.
CANCELEDiOSThe user closed the Apple sign-in sheet.

Errors that end the session#

When a renewal fails with SESSION_EXPIRED, SESSION_REVOKED, TOKEN_INVALID or USER_DISABLED, the SDK clears the session on the device and your auth state listener receives null. Send the user to your sign-in screen there. Every other error, including NETWORK_ERROR, keeps the session.

Was this page helpful?
Report a problem