Auth leg (raised by the OIDC client in core/auth.ts):
authorization_error — the issuer returned an error parameter in the
authorization callback (e.g. the user denied consent).invalid_callback — the callback was malformed or arrived without a
matching pending login attempt (missing code, or no persisted PKCE state).state_mismatch — the callback state did not match the value stored for
this login attempt (CSRF / stale-tab defense).token_request_failed — the token endpoint rejected the exchange or the
response was missing id_token/access_token.invalid_id_token — the returned id_token failed binding-claim validation
(issuer, audience, expiry, nonce, or subject).Client / session lifecycle:
config_invalid — UpbondConfig failed boundary validation in
validateConfig (missing/relative URL, unknown environment, ...).not_signed_in — an operation needing a session was called before sign-in
(or the session was ended while a refresh was in flight).session_expired — the id_token has expired and no refresh token was
available, or the refresh grant was definitively rejected — sign in again.wallet_not_configured — a wallet method was called without a matching
wallet config, or a redirect-mode method was called in embedded mode (or
vice versa).Wallet leg (translated from wallet-core implementation errors at the adapter
boundary, original error preserved on cause):
popup_blocked — the browser blocked the wallet popup; connect() must be
called synchronously from a user gesture.wallet_not_set_up — a signature was requested before the wallet was
onboarded (run setupWallet() or recoverWallet() first).recovery_required — this device holds no usable factor; new-device
recovery (recoverWallet()) is needed.recovery_unavailable — recovery cannot proceed: no stored binding, or the
recoverian/OTP prompt is not configured.passkey_unsupported — the platform authenticator lacks the required
WebAuthn PRF capability.wallet_locked — a Layer-2 operation was attempted on a locked wallet
(call unlockWallet() first).invalid_otp — the recoverian rejected the presented one-time code.resend_too_soon — an OTP was requested again before the resend cooldown
elapsed (recoverian rate limit).wallet_error — catch-all for any other wallet-layer failure (handshake
timeout, unexpected internal error).
The frozen set of error codes carried by every UpbondError. Narrow on
error.coderather than parsing messages — the code union is the customer contract; messages are advisory and may change.