# Errors overview

Source: https://docs.settlemint.com/docs/api-reference/errors/overview
Index of DALP's error catalogs and handling guidance. Map an error you encountered to the right reference page, find the domain the error covers, and choose the next action for your integration.



This section catalogs the errors integrations encounter when calling DALP. Two reference pages list every code; a handling guide explains retry, idempotency, and escalation; this overview is the entry that routes you to the right place by the kind of error you have.

## When to read what [#when-to-read-what]

| You have...                                                                                     | Read                                                                                    |
| ----------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- |
| An error code returned by a Platform API route (auth, validation, upstream, rate-limit, system) | [Platform API error reference](/docs/api-reference/errors/platform-api-error-reference) |
| An error revert from a smart contract (compliance check, settlement, system, OpenZeppelin)      | [Smart contract error code reference](/docs/api-reference/errors/error-code-reference)  |
| A general question about retry, idempotency, or error surface design                            | [Error handling](/docs/api-reference/errors/error-handling)                             |

The reference pages are large because they cover every code DALP can return; use this overview to jump to the relevant section instead of scrolling.

If you maintain an older integration bookmark under the developer-guides path, use the [smart contract error code reference](/docs/api-reference/errors/error-code-reference) in the api-reference section for the current catalog.

## Smart contract error code domains [#smart-contract-error-code-domains]

The [smart contract error code reference](/docs/api-reference/errors/error-code-reference) groups codes by the operation that triggered them. Use the anchor link to jump to the relevant domain:

* [Compliance and token operations](/docs/api-reference/errors/error-code-reference#compliance--token-operations): identity verification, country restrictions, allow-list and block-list rejections, transfer approvals, supply-cap and collateral checks, and other compliance-module rejects.
* [Settlement and XvP](/docs/api-reference/errors/error-code-reference#settlement--xvp): XvP settlement state transitions, hashlock or window failures, approval errors, and cancellation rejections.
* [Airdrop and distribution](/docs/api-reference/errors/error-code-reference#airdrop--distribution): distribution-state rejections from the airdrop addon and its claim-tracker variants.
* [System and infrastructure](/docs/api-reference/errors/error-code-reference#system--infrastructure): system contract, directory, registry, factory, and access-manager rejects.
* [Internal (OpenZeppelin and low-level)](/docs/api-reference/errors/error-code-reference#internal-openzeppelin--low-level): OpenZeppelin selector-revert payloads (e.g., `Ownable`, `AccessControl`, `Pausable`) and other low-level reverts surfaced when no higher-level cause is available.

The reference page ends with a [summary](/docs/api-reference/errors/error-code-reference#summary) table of counts per domain.

## Platform API error domains [#platform-api-error-domains]

The [Platform API error reference](/docs/api-reference/errors/platform-api-error-reference) lists every Platform API error code. Use the anchor links to jump to the relevant section in the long reference. The Platform API codes follow a single naming scheme (`DALP-NNNN`) and are grouped by the HTTP status they map to:

* Authentication and authorisation rejections (`401`, `403`).
* Request validation rejections (`400`, `422`).
* Rate-limit and quota rejections (`429`).
* Upstream and external integration failures (`502`, `503`, `504`).
* System and platform rejections (`500`).

Every code carries a fixed shape: code identifier, category, HTTP status, retryable flag, message, why, and fix guidance. Integrations should branch on the stable `id` value in the public error object, not on the message text.

## Handling guidance [#handling-guidance]

The [error-handling guide](/docs/api-reference/errors/error-handling) covers the cross-cutting concerns:

* **Retry policy**: which errors are retryable, which carry an idempotency contract, and how to back off.
* **Idempotency**: how to use idempotency keys with mutation endpoints to make retries safe.
* **Status polling**: how to follow asynchronous blockchain mutations through their lifecycle.
* **Error envelopes**: the shape of the error response across REST, RPC, and bundler routes.
* **Support evidence**: which request and response fields to include when escalating an unresolved error.

Read the handling guide before integrating against the references. The references describe what each code means; the handling guide describes what your integration does about it.

## Registry updates [#registry-updates]

The two reference pages are maintained from DALP's error registries. The smart-contract catalog covers known on-chain reverts. The Platform API catalog covers the public error envelope returned by API, RPC, stream, bundler, provider, and dependency surfaces.

When the platform adds or changes an error code, the generated references update with the code, category, status, retry flag, public reason, and recovery guidance. The overview, anchor links, and handling guide on this page are maintained separately, so keep them aligned with the reference structure when major domain shifts ship.

## Read next [#read-next]

* [Platform API error reference](/docs/api-reference/errors/platform-api-error-reference)
* [Smart contract error code reference](/docs/api-reference/errors/error-code-reference)
* [Error handling](/docs/api-reference/errors/error-handling)
* [Transaction tracking](/docs/developers/operations/transaction-tracking) for status polling against async blockchain mutations.
