Skip to main content
Unveilydocs

Error Codes

What got blocked and how to get through — a guide to the error codes

Error codes aren't dead ends — they're signposts that tell you what to do next. Find your code below, follow the "How to fix" column, and most issues clear up in a few minutes.

One word first — plan

Throughout the docs, plan means your subscription level: Basic · Standard · Pro. In the license verification API response this value arrives in the tier field ("basic" · "standard" · "pro") — so the tier field is simply the plan you're on.

License Errors

These come from the license check when the app starts. If the app won't run, start here.

CodeHTTPWhat it meansHow to fix
LICENSE_NOT_FOUND404The license key wasn't foundCheck that assets/license.key exists
LICENSE_EXPIRED403The license period has endedRenew your subscription and it clears immediately
LICENSE_INACTIVE403Not activated yetActivate it in My Page
PACKAGE_MISMATCH403The package name differs from what's registeredMatch the package name in your app settings
SIGNATURE_MISMATCH403The signature hash differs from what's registeredRe-register the signature hash
INVALID_SIGNATURE401HMAC verification failedRe-issue the license key file

Authentication Errors

These come from dashboard / account requests.

CodeHTTPWhat it means
UNAUTHORIZED401The sign-in token is missing or expired — sign in again
FORBIDDEN403You don't have permission for this action

Bridge Errors

These arrive in the result callback when your in-app JavaScript calls window.unveilyBridge.

The shape varies a little

Each bridge returns a slightly different result shape. Cancellation is usually { cancelled: true }, and failure is { error: "..." } or { success: false, error: "..." }. The exact shape is in the "Callback" section of each bridge's page.

CodeWhat it means
CANCELLEDThe user cancelled (e.g. closed the scanner)
PERMISSION_DENIEDNo system permission — uncomment the manifest permission / check the iOS Info.plist usage key
FEATURE_NOT_ALLOWEDNot included in your current plan — it unlocks on a higher plan
SDK_NOT_READYNot ready on iOS yet (e.g. Kakao/Naver/Line/Meta login is planned for a future iOS SDK update)
NOT_SUPPORTEDNot supported on your current plan
UNAVAILABLEThe device itself doesn't support this (no hardware, etc.)
TIMEOUTThe response took too long — try again

When a plan blocks you

You can sidestep these errors by checking availability before you call a feature. Read your current plan from unveilyBridge.app.getInfo() (the tier value), and check module activation with unveilyBridge.modules.isEnabled("...").

On this page