# DALP-9400 to DALP-9499

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

This page lists the 48 errors the Platform API can return with a code from DALP-9400 to DALP-9499. 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-9414 | `TRADE_BUST_REFUSED` | client | The trade bust was refused before any reversal. | A pre-check failed: the trade is not chain-confirmed, an order on it is still open, the bust window has passed, the trade is already busted or proposed, a counterparty or fee account lacks balance, the compliance path is blocked or unavailable, or the organisation's operations signer is missing or lacks the custodian role the forced transfers need. The reason in the response names the failed check. | Resolve the named reason, then propose the bust again. | info | No | 422 |
| DALP-9415 | `TRADE_BUST_APPROVAL_INVALID` | client | The maker-checker rules refused this decision. | The proposer can never approve or reject their own proposal, a proposal that already carries a decision accepts no second one, a decision route accepts only records of its own kind, and a record whose approval window has lapsed accepts no decision. The violation in the response names the rule. | Ask a different venue operator to decide the proposal, or refresh the approvals list to see its current state. | info | No | 409 |
| DALP-9421 | `EXCHANGE_RATE_FEED_ROW_DECODE_FAILED` | operational | The stored exchange-rate feed could not be read. | A feed row in the platform database does not match the shape the read expects, so the platform stopped rather than publish a rate it cannot stand behind. | Do not retry. Contact support with the `X-Request-Id` response header so an operator can repair the stored feed row. | error | No | 500 |
| DALP-9425 | `SYSTEM_OPERATION_REJECTED` | domain | The system operation requirements were not met. | The target contract could not accept the supplied system input or sender authority. | Check the system addresses and parameters, then use a sender with the required on-chain role. | info | No | 400 |
| DALP-9426 | `SYSTEM_OPERATION_CONFLICT` | domain | The system state already conflicts with this operation. | A system role or resource changed before this operation completed, or the requested change is already applied. | Read the current system roles and resource state, then rebuild the request from that state. | info | No | 409 |
| DALP-9427 | `SYSTEM_OPERATION_UNPROCESSABLE` | domain | The system contract refused the operation. | Contract checks refused the operation after request validation because its authority, address, or state requirement was not met. | Read the target contract state and required roles, correct the failed requirement, then retry. | info | No | 422 |
| DALP-9429 | `SYSTEM_OPERATION_OUTCOME_UNKNOWN` | operational | The system operation outcome is unknown. | Recovery stopped before the platform could confirm whether the underlying write completed. | Do not resubmit the operation. Verify its final on-chain state before taking further action. | error | No | 503 |
| DALP-9430 | `INVALID_REQUEST_EXECUTOR` | client | X-Executor has no matching execution mode. | The X-Executor header does not name a supported execution mode. | Use eoa or smart-wallet, or omit X-Executor to use the organization default. | info | No | 400 |
| DALP-9432 | `REQUEST_EXECUTOR_FAMILY_UNSUPPORTED` | client | This executor does not exist on the selected network. | The eoa and smart-wallet executors are EVM account shapes. The selected chain family uses another signing model. | Omit X-Executor on this network and use its custody-held signing account. | info | No | 400 |
| DALP-9433 | `REQUEST_EXECUTOR_UNAVAILABLE` | client | The selected executor is unavailable. | The selected participant has no usable account for the requested executor. When `data.reason` is present, this organization cannot drive the participant's wallet and the value names the capability it lacks, such as account abstraction not being enabled on this chain. The platform never substitutes the wallet's signer key. | Select an available executor or provision the participant smart wallet, then retry. | info | No | 409 |
| DALP-9438 | `LOGIN_2FA_REQUIRED` | auth | Login two-factor authentication setup is required. | This deployment requires interactive users to enroll login two-factor authentication before calling authenticated APIs. | Open the two-factor setup page, enroll an authenticator app, then retry the request. | info | No | 403 |
| DALP-9439 | `BLOCKCHAIN_ROLE_REQUIRED` | permission | The selected executor cannot act on this route. | The route refused the request before the executor could act. Four conditions cause this. The executor holds none of the indexed blockchain roles the route requires. No usable executor could be selected for the request. The request has no active system on this chain. Account abstraction is off for the executor the request asked for. `data.requiredRoles` lists the roles that authorise the route. | Check the `X-Executor` header and that account abstraction is on for your organisation. Then use an executor with one of the required roles, or grant that role, and try again. | info | No | 403 |
| DALP-9440 | `BLOCKCHAIN_SYSTEM_REQUIRED` | domain | No blockchain system is available for this organization. | The active organization has no indexed system on the selected network, so the requested system-backed profile or operation does not exist there. | Deploy the organization system or select a network where its system is indexed, then retry. | info | No | 404 |
| DALP-9441 | `BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED` | dependency | Blockchain authorization state is unavailable. | The platform could not load the indexed wallet or account-abstraction state needed to authorize the request. | Retry after the database projections recover. If the failure continues, contact support with the request id. | error | Yes | 503 |
| DALP-9460 | `CONVERSION_WINDOW_NOT_OPEN` | domain | The conversion window has not opened. | The chain timestamp is before the configured conversion start. | Submit the conversion after windowStart. Check the window returned by the conversion feature. | info | Yes | 409 |
| DALP-9461 | `CONVERSION_WINDOW_CLOSED` | domain | The conversion window has closed. | The chain timestamp is after the configured conversion end. | Ask the issuer to review the conversion window; retrying the same request cannot reopen it. | info | No | 409 |
| DALP-9462 | `TOKEN_FEATURE_ALREADY_ATTACHED` | domain | This feature, or one it conflicts with, is already attached. | `{{featureName}}` is already attached to this token, or it cannot be combined with `{{conflictingFeatureName}}`, which is attached. | If `{{featureName}}` is already attached, nothing is left to do. Otherwise detach `{{conflictingFeatureName}}`, or choose a feature that can be combined with `{{featureName}}`. | info | No | 409 |
| DALP-9463 | `TOKEN_FEATURE_CONVERSION_INCOMPATIBLE` | domain | The yield feature conflicts with conversion accounting. | The conversion debt method leaves retired principal in holder balances, so this yield feature would pay against retired principal. | Use a token design whose conversion retires principal through burn or lock before adding this yield feature. | info | No | 409 |
| DALP-9464 | `TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE` | domain | Conversion cannot select one interest provider. | Attaching this feature would leave the immutable conversion configuration without one usable interest provider. | Choose a feature combination with exactly one interest provider supported by the conversion configuration. | info | No | 409 |
| DALP-9465 | `TOKEN_FEATURE_FACTORY_NOT_FOUND` | domain | The feature factory is not installed. | The active system has no factory for the requested token feature. | Install the feature factory on this system, then attach the feature. | info | No | 409 |
| DALP-9466 | `TOKEN_FEATURE_FEATURE_NOT_FOUND` | domain | The requested feature is not attached. | The token has no attached feature matching this operation. | Read the token features and attach the required feature before calling this operation. | info | No | 409 |
| DALP-9467 | `TOKEN_FEATURE_NAME_MISMATCH` | domain | The feature in the body does not match the feature in the path. | The request body names a different feature than the route path. | Send the same feature name in the path and the body. | info | No | 409 |
| DALP-9468 | `TOKEN_FEATURE_STALE_INDEX` | domain | The feature projection is behind the chain. | The indexed feature address does not match the feature currently attached on chain, or the dividend entitlement or proof for the acting wallet is not indexed yet. | Wait for the indexer to catch up, read the attached feature again, and retry. | info | Yes | 409 |
| DALP-9469 | `TOKEN_FEATURE_UNCHANGED_ADDRESS` | domain | The replacement feature address is unchanged. | The replacement configuration predicts the address the token already uses. | Keep the existing feature, or change the replacement configuration. | info | No | 409 |
| DALP-9470 | `FIXED_YIELD_OPERATION_ADDON_NOT_FOUND` | domain | The fixed-yield addon is not installed. | The active system has no fixed-yield addon for this operation. | Install the fixed-yield addon on this system before creating a schedule. | info | No | 409 |
| DALP-9471 | `FIXED_YIELD_OPERATION_DENOMINATION_ASSET_NOT_INDEXED` | domain | The yield denomination is not indexed. | The schedule denomination asset has no indexed token record. | Register the denomination asset and wait for its token projection before retrying. | info | Yes | 409 |
| DALP-9472 | `FIXED_YIELD_OPERATION_DENOMINATION_METADATA_NOT_INDEXED` | domain | Yield denomination metadata is missing. | The indexer has not recorded the denomination metadata needed to interpret payout amounts. | Restore denomination metadata indexing, then retry; do not assume token decimals. | info | Yes | 409 |
| DALP-9473 | `FIXED_YIELD_OPERATION_DEPLOYMENT_NOT_INDEXED` | domain | The fixed-yield deployment is not indexed. | The deployed fixed-yield contract has no corresponding indexed deployment state. | Check the deployment transaction and restore indexer progress before retrying. | info | Yes | 409 |
| DALP-9474 | `FIXED_YIELD_OPERATION_SCHEDULE_NOT_FOUND` | domain | The yield schedule was not found. | The requested schedule is not available in the active system. | Use a schedule returned by this system and verify its address and network. | info | No | 409 |
| DALP-9475 | `FIXED_YIELD_OPERATION_SYSTEM_MISMATCH` | domain | The yield schedule belongs to another token. | The schedule is not linked to the token named in the request. | Use the schedule linked to this token. | info | No | 409 |
| DALP-9476 | `FIXED_YIELD_OPERATION_TOKEN_LINKAGE_NOT_INDEXED` | domain | The schedule token link is not indexed. | The indexer has not linked the yield schedule to its token. | Check the schedule creation transaction and restore indexing before retrying. | info | Yes | 409 |
| DALP-9477 | `MATURITY_STATE_NOT_INDEXED` | operational | Maturity state is not indexed. | The maturity feature state required for this operation is absent from the index. | Check the feature deployment and restore indexer progress before retrying. | info | Yes | 503 |
| DALP-9478 | `MATURITY_NOT_MATURED` | domain | The token has not matured. | Neither indexed nor live chain state marks the token as matured. | Call the maturity operation when the token is eligible, then redeem. Check maturityDate in this response. | info | No | 409 |
| DALP-9479 | `MATURITY_TREASURY_UNCLASSIFIED` | operational | The maturity treasury has not been classified. | The indexer has not determined whether the configured treasury is a wallet or a contract. | Restore treasury classification indexing before redeeming. | info | Yes | 503 |
| DALP-9480 | `MATURITY_TREASURY_WALLET_MISMATCH` | domain | The selected wallet is not the maturity treasury. | This allowance must be approved by the configured treasury wallet. | Select the treasury address returned in this response, then approve the allowance. | info | No | 409 |
| DALP-9481 | `MATURITY_INSUFFICIENT_ALLOWANCE` | domain | The maturity treasury allowance is too small. | The treasury approved `{{allowance}}` denomination base units; this redemption requires `{{required}}`. | Ask the issuer to have the maturity treasury approve at least the required amount for the maturity feature, then retry. | info | No | 409 |
| DALP-9482 | `TOKEN_MUTATION_INSUFFICIENT_BALANCE` | domain | The holder has insufficient available tokens. | The `{{operation}}` requests `{{requested}}` base units from `{{holderAddress}}`, but only `{{available}}` are available. | Reduce the amount to the holder's available balance, or fund the holder, then retry. | info | No | 409 |
| DALP-9483 | `TOKEN_SUPPLY_PAUSED` | domain | Token supply changes are paused. | The token is paused, which prevents this `{{operation}}`. | Have an authorized operator unpause the token before changing its supply. | info | No | 409 |
| DALP-9484 | `TOKEN_MINT_AMOUNT_INVALID` | domain | Mint amounts must be positive. | At least one recipient has a mint amount of zero. | Provide a positive base-unit amount for every recipient. | info | No | 400 |
| DALP-9485 | `TOKEN_ACCESS_UNAUTHORIZED` | permission | The account running this action lacks the asset role it needs. | Only an account that holds the asset role this action needs can run it on this asset. | Ask an asset administrator to grant the role on the asset's Permissions tab, or run the action from an account that already holds it. | info | No | 403 |
| DALP-9486 | `TOKEN_DOCUMENTS_READ_DOCUMENT_NOT_FOUND` | domain | The token document was not found. | No document matching the requested identifier is available on this token. | Use a document identifier returned by the token document list. | info | No | 404 |
| DALP-9487 | `CONVERSION_INTEREST_NOT_CONVERTIBLE` | domain | The holder has no convertible interest to convert. | The conversion feature has no interest provider, or the holder has no unsettled convertible interest on it. | Convert principal instead, or submit the interest conversion after interest accrues to the holder. | info | No | 409 |
| DALP-9488 | `TOKEN_PAUSE_STATE_UNCHANGED` | domain | The token is already in the requested pause state. | The request would set the pause state of `{{tokenAddress}}` to a state it already has, so nothing would change. | Read the token's pause state again. Pause an active token or unpause a paused one; there is nothing to do when it already matches. | info | No | 409 |
| DALP-9495 | `TOKEN_PERMIT_DEADLINE_EXPIRED` | domain | The permit deadline has passed. | The signed permit deadline is earlier than the current chain time. | Create and sign a new permit with a future deadline. | info | No | 422 |
| DALP-9496 | `TOKEN_PERMIT_WALLET_UNAVAILABLE` | domain | No permit signing wallet is available. | The active organization and chain have no executor wallet available for this permit operation. | Configure an executor wallet for this organization and chain, then retry. | info | No | 409 |
| DALP-9497 | `TOKEN_PERMIT_NOT_FOUND` | domain | The signed permit was not found. | No signed permit matches this organization, chain, token, and permit identifier. | Use an identifier returned by the permit signing route, or sign a new permit. | info | No | 404 |
| DALP-9498 | `TOKEN_PERMIT_ALREADY_RELAYED` | domain | The permit was already relayed. | This signed permit was already submitted to the chain. | Read the permit and its transaction result instead of relaying it again. | info | No | 409 |
| DALP-9499 | `TOKEN_PERMIT_NOT_RELAYABLE` | domain | The permit cannot be relayed. | The signed permit is not pending in a state that accepts relay. | Read the permit state. Sign a new permit if the stored permit expired or was already consumed. | info | No | 409 |

The previous page is [DALP-9300 to DALP-9399](https://docs.settlemint.com/docs/api-reference/errors/platform-api-error-reference/dalp-9300-9399). The next page is [DALP-9500 to DALP-9999](https://docs.settlemint.com/docs/api-reference/errors/platform-api-error-reference/dalp-9500-9999).
