Skip to main content
Every SDK surfaces the same error codes. An error carries a numeric code and a symbolic name; the web SDK also exposes a display form (E + the number, e.g. E1003). Codes are grouped into modules, each owning a numeric range.

How errors surface per platform

Match on the symbolic name rather than hard-coding numbers — names are stable across releases. Every SDK exports the names (e.g. the typed ErrorCode enum, or per-module buckets like vendor.EXTENSION_NOT_FOUND).

Module map

Integration errors

These are the modules you are most likely to handle in application code.

bindings

Errors from the SDK API surface (your code): bad arguments, cancellation, lifecycle.

backend

Backend — authentication, API key, device registration, and network errors from the Validation Gateway.

crypto

Crypto — session encryption, key exchange, and signing errors.

smartcard

Smart card — reader connection and session errors.

fingerprint

Fingerprint — sensor and capture errors.

card

Card — Emirates ID chip protocol (APDU / status-word) errors.

transport

Transport — connection, timeout, and messaging errors to local services.

service

Service — signed-service verification errors.

schema

Schema — card data schema lookup and parsing errors.

vendor

Vendor — vendor-specific and extension errors (e.g. browser extension not found).

Lower-level errors

These modules cover the hardware, transport, and platform layers. You won’t usually branch on them directly, but they appear in logs and bug reports. Expand a module for its full list.