# DALP-12400 to DALP-12499

Source: https://docs.settlemint.com/docs/api-reference/errors/platform-api-error-reference/dalp-12400-12499
Cause, fix, HTTP status and retry flag for every Platform API error with a code from DALP-12400 to DALP-12499.

This page lists the 14 errors the Platform API can return with a code from DALP-12400 to DALP-12499. Match the `id` in the error envelope to the DALP Code column, then read Retryable and Suggested Fix. The [Platform API error reference](https://docs.settlemint.com/docs/api-reference/errors/platform-api-error-reference#how-to-use-this-reference) explains each column, including Severity, and the [DALP error index](https://docs.settlemint.com/docs/api-reference/errors) lists the page for every code range.

| DALP Code | Machine name | Category | Message | Why | Suggested Fix | Severity | Retryable | HTTP Status |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| DALP-12400 | `MULTISIG_ACCOUNT_ABSTRACTION_REQUIRED` | client | Multisig wallets need account abstraction, which this organisation does not use on this network. | A multisig wallet is a smart contract wallet, and this organisation does not drive account abstraction on this network, so the draft step was refused before anything was stored. | Use a single-key wallet, or ask an operator to enable account abstraction for this organisation on this network. | info | No | 400 |
| DALP-12401 | `CUSTODY_ONLY_LIVE_KEY` | domain | This is the participant's only live key. | Revoking a key needs approval from another live key of the same participant, and none exists, so the request could never complete. Nothing changed. | If the key is lost or stolen, use lost-wallet recovery, which moves the tokens to a new wallet. If you still hold the key and its wallet is empty, archive it instead. | info | No | 409 |
| DALP-12402 | `REGISTRATION_WALLET_NOT_BOUND` | domain | The participant's new wallet is not bound to its identity yet. | A wallet joins an approved identity's registration only once its key is bound to that identity, and none of the participant's new wallets is bound yet, for example while the key is still waiting for a signature. Nothing changed. | Retry once the wallet's key has been added to the identity. | info | No | 409 |
| DALP-12403 | `CUSTODY_KEY_HOLDS_TOKENS` | domain | This key still holds tokens. | Revoking a key that holds tokens would strand them at an address that can no longer sign. Nothing changed. | Use lost-wallet recovery, which moves the tokens to a new wallet, then revoke the key. | info | No | 409 |
| DALP-12404 | `CUSTODY_ARCHIVE_HOLDS_TOKENS` | domain | A wallet still holds tokens. | A wallet of this participant still holds tokens, and archiving a key before they are moved can leave them at an address nobody manages. Nothing changed. | Transfer the tokens to another wallet, then archive the key. If the key is lost, use lost-wallet recovery. | info | No | 409 |
| DALP-12405 | `CUSTODY_ARCHIVE_LIVE_WALLET` | domain | A smart wallet on this key is still live. | Archiving the key while a smart wallet still uses it would leave that wallet without a signer. Nothing changed. | Archive the smart wallet first, then archive this key. | info | No | 409 |
| DALP-12406 | `CUSTODY_SCOPE_DENIED` | permission | You cannot manage this custody account. | The request names a participant that is not yours, an invitation that is not open to you, or no active organization. Nothing changed. | Only the user a participant belongs to can manage its custody accounts. Switch to one of your own participants in an organization you belong to, or ask that user to make the change. | info | No | 403 |
| DALP-12407 | `platform.addonApprovals.APPROVAL_NOT_REQUIRED` | client | This call needs no checker approval. | The access manager needs no checker approval for this call, so there is nothing to propose. | Send the call to data.target directly from a wallet that holds its role. | info | No | 422 |
| DALP-12408 | `platform.addonApprovals.PROPOSAL_REFUSED` | contract | The access manager refused this proposal change. | The access manager refused this proposal change. Read data.reason for the cause and data.revert for the contract error. | Read data.reason and the proposal, act from a wallet that may make this change, then send it again. | info | No | 422 |
| DALP-12409 | `WALLET_VERIFICATION_STRONGER_FACTOR_REQUIRED` | permission | This action needs the wallet authenticator code. | The account holds a wallet authenticator, so a PIN or recovery code does not confirm this action, and the platform changed nothing. `data.verificationType` names the method that was sent and `data.requiredType` the method that is required. | Enter the wallet authenticator code and send the request again with a fresh step-up challenge. If the authenticator device is lost, recover access from the account Security page first. | info | No | 403 |
| DALP-12410 | `WALLET_PIN_RESET_NOTICE_FAILED` | dependency | The wallet PIN was reset, but the notice email could not be sent. | The member's wallet PIN was removed and every session of the member ended. Only the email that tells the member could not be sent. | Do not repeat the reset: it would run again and can remove a PIN or sessions the member set up since. Tell the member another way. | error | No | 503 |
| DALP-12411 | `platform.addonApprovals.APPROVAL_REQUIRED` | client | This change needs checker approval. | The access manager's checkers must approve this change before it can be sent. | Propose data.calldata to data.target under data.makerRole, collect the approvals, then send the same request again or execute the proposal. | info | No | 422 |
| DALP-12412 | `settlement.sale.APPROVER_SHORTFALL` | client | This organisation has no second owner to approve the request. | Creating, activating, ending or finalizing an offering, or running its allocation, waits for an organisation owner other than the requester to approve it while offerings approval is on, but this organisation has no other owner. | Add another owner to the organisation, then send the request again, or turn offerings approval off in Organisation settings, General. | info | No | 422 |
| DALP-12413 | `CUSTODY_DIRECT_PARTICIPANT_HAS_KEY` | domain | This participant signs with one key. | A participant that signs directly holds one live key, and that key's address is the address its roles and tokens sit on, so a second key could never act for it. Nothing changed. | To replace the key, use lost-wallet recovery, which moves its tokens to the new wallet. If you still hold the key, remove it first, then add the new one. | info | No | 409 |

The previous page is [DALP-12300 to DALP-12399](https://docs.settlemint.com/docs/api-reference/errors/platform-api-error-reference/dalp-12300-12399). The next page is [DALP-13000 to DALP-13999](https://docs.settlemint.com/docs/api-reference/errors/platform-api-error-reference/dalp-13000-13999).
