Skip to content
Oris Docs

Errors

Errors are typed in both Python and TypeScript SDKs. Every error carries a stable reason_code string that maps to the HTTP API contract.

Authentication

CodeHTTPClassMeaningAction
AUTH_INVALID_KEY401OrisAuthErrorAPI key missing or revokedRe-issue from dashboard
AUTH_SIGNATURE_INVALID401OrisAuthErrorEd25519 signature did not verifyConfirm private key + timestamp drift
AUTH_NONCE_REPLAYED409OrisAuthErrorNonce reused within 30 sGenerate a fresh nonce
AUTH_TIMESTAMP_DRIFT401OrisAuthErrorRequest timestamp outside 30 s windowSync system clock

Policy

CodeHTTPClassMeaningAction
POLICY_AMOUNT_CAP403OrisPolicyDenymax_per_tx exceededUse escalation or lower amount
POLICY_DAILY_LIMIT403OrisPolicyDenymax_daily exceededWait until daily reset
POLICY_MONTHLY_LIMIT403OrisPolicyDenymax_monthly exceededWait until monthly reset
POLICY_COUNTERPARTY_NOT_ALLOWED403OrisPolicyDenyDestination not in whitelistAdd to whitelist or remove rule
POLICY_CATEGORY_NOT_ALLOWED403OrisPolicyDenyCategory not in allowed setUpdate policy or use allowed category
POLICY_ESCALATION_REQUIRED202OrisPolicyEscalationAbove escalation_thresholdWait for human approval

Compliance

CodeHTTPClassMeaningAction
COMPLIANCE_SANCTIONS_HIT403OrisSanctionsErrorCounterparty matched sanctions feedBlock. Do not retry.
COMPLIANCE_RISK_TIER_BLOCKED403OrisRiskTierErrorVeris returned Blocked tierReview counterparty + drift signals
COMPLIANCE_VERIS_TIMEOUT503OrisServiceErrorVeris gRPC unreachable within budgetRetry after backoff

Revocation

CodeHTTPClassMeaningAction
REVOKED_TIER_1403OrisRevocationErrorImmediate revocation hitOperator review required
REVOKED_TIER_2403OrisRevocationErrorBehavioral revocation hitDrift review + remediation

Verifier

CodeHTTPClassMeaningAction
SIGNATURE_INVALID422OrisBundleErrorBundle signature did not verifyRe-build the bundle
BUNDLE_MALFORMED422OrisBundleErrorCanonical bytes do not match schemaVerify canonical encoder version
BUNDLE_EXPIRED422OrisBundleErrorexpires_at in the pastRe-sign with a fresh expiration
NONCE_REPLAYED409OrisBundleErrorSame nonce submitted twiceGenerate fresh nonce

Network adapter

CodeHTTPClassMeaningAction
NETWORK_UNREACHABLE503OrisNetworkErrorRPC endpoint downRetry with exponential backoff
NETWORK_INSUFFICIENT_BALANCE422OrisNetworkErrorWallet balance too lowTop up the wallet
NETWORK_GAS_TOO_LOW422OrisNetworkErrorPaymaster rejectedRetry with higher fee tolerance

Rate limiting

CodeHTTPClassMeaningAction
RATE_LIMIT_PER_KEY429OrisRateLimitErrorPer-key quota exhaustedBack off; respect Retry-After
RATE_LIMIT_PER_TENANT429OrisRateLimitErrorTenant-wide quota exhaustedContact support to lift

Where to go next