This page lists the 54 errors the Platform API can return with a code from DALP-14500 to DALP-14999. Match the id in the error envelope to the DALP Code column, then read Retryable and Suggested Fix. The Platform API error reference explains each column, including Severity, and the DALP error index lists the page for every code range.
DALP Code | Machine name | Category | Message | Why | Suggested Fix | Severity | Retryable | HTTP Status |
|---|---|---|---|---|---|---|---|---|
DALP-14501 | TOKEN_ | domain | Your wallet does not hold enough of the denomination asset for this yield treasury top-up. | A top-up transfers the denomination asset from your wallet to the yield treasury. Your wallet holds {{available}} base units and the top-up asks for {{required}}, so the transfer would fail. | Reduce the amount to at most your balance, or add the denomination asset to your wallet, then retry. | info | No | 409 |
DALP-14502 | TOKEN_ | domain | Your wallet is the yield treasury, so a top-up cannot change its coverage. | A top-up transfers the denomination asset from your wallet to the yield treasury. Your wallet is that treasury, so the transfer would only move funds to itself. | As the treasury, hold the denomination asset in your wallet and approve the yield feature to pay claims from it (approve yield treasury allowance). A top-up is for wallets other than the treasury. | info | No | 409 |
DALP-14503 | TOKEN_ | domain | The yield treasury cannot pay this claim yet. | The claim pays the holder's owed yield from the yield treasury. The treasury's balance, or the allowance it gave the yield feature, cannot cover it, so the payout would fail. | Ask the issuer to fund the yield treasury and, when the treasury is a wallet, to approve the yield feature for at least the owed amount. Retry the claim after that. | info | No | 409 |
DALP-14504 | MATURITY_ | domain | Your wallet does not hold enough of the denomination asset for this maturity treasury top-up. | A top-up transfers the denomination asset from your wallet to the maturity treasury. Your wallet holds {{available}} base units and the top-up asks for {{required}}, so the transfer would fail. | Reduce the amount to at most your balance, or add the denomination asset to your wallet, then retry. | info | No | 409 |
DALP-14505 | MATURITY_ | domain | Your wallet is the maturity treasury, so a top-up cannot change its funding. | A top-up transfers the denomination asset from your wallet to the maturity treasury. Your wallet is that treasury, so the transfer would only move funds to itself. | As the treasury, hold the denomination asset in your wallet and approve the maturity feature to pay redemptions from it. A top-up is for wallets other than the treasury. | info | No | 409 |
DALP-14506 | MATURITY_ | domain | The maturity treasury cannot pay this redemption yet. | The redemption is paid from the maturity treasury {{treasury}} in the denomination asset {{denominationAsset}}. The treasury holds {{treasuryBalance}} base units and this redemption requires {{required}}, so the payout would fail. | Ask the issuer to fund the maturity treasury with at least the required amount, then retry the redemption. | info | No | 409 |
DALP-14701 | market- | client | Price source {sourceId} changed since you read it. | The price source changed after this request read it, so the edit was not applied. | Read the source again, review the current settings and send the edit again. | info | No | 409 |
DALP-14702 | market- | client | The SFTP host key of price source {sourceId} changed to {fingerprint}. | The SFTP server presented a host key other than the one accepted for this source, so the scheduler refused to connect. | Compare the fingerprint with the one the provider publishes, then accept it on the source. | info | No | 409 |
DALP-14703 | market- | client | The heartbeat needs {requiredSeconds} seconds but the staleness bound is {boundSeconds} seconds. | The heartbeat plus the expected delivery interval plus the expected lag is not shorter than the staleness bound, so the feed would go stale between publishes. | Shorten the heartbeat, the expected interval or the expected lag, or raise the source's stale-after time. | info | No | 422 |
DALP-14704 | market- | client | Host {host} is not an allowed price source endpoint. | The host is a loopback, link-local, metadata, private or unspecified address that this deployment does not allow price sources to reach. | Use the provider's public host name, or ask an operator to add the address range to the deployment's endpoint allow list. | info | No | 422 |
DALP-14705 | market- | client | A FIX session to {host} needs TLS. | A FIX session without TLS is allowed only to an address inside the deployment's endpoint allow list. | Turn TLS on and name the certificate's server name, or use an address the deployment's endpoint allow list covers. | info | No | 422 |
DALP-14706 | market- | client | A {kind} credential does not fit a {protocol} price source. | This kind of credential does not fit the source's protocol. | Send the credential kind the protocol uses: a password or private key for SFTP, a logon for FIX, client credentials for Bloomberg, a password for LSEG. | info | No | 422 |
DALP-14707 | market- | client | Price source {sourceId} cannot change protocol from {protocol}. | A price source keeps the protocol it was created with, so an edit cannot switch it. | Edit the settings for the source's own protocol, or create a new source for the other protocol. | info | No | 422 |
DALP-14708 | market- | client | The price feed {feedAddress} is not described as BASE / QUOTE. | A price feed names its currency in a description of the form BASE / QUOTE, and this feed's description does not follow that form. | Map an ISIN to a token whose price feed is described as BASE / QUOTE, or let the mapping create the feed. | info | No | 422 |
DALP-14709 | market- | client | The price feed {feedAddress} is not issuer-signed. | A price source publishes through the organisation's signer, which only an issuer-signed feed accepts. | Map the ISIN to a token whose price feed is issuer-signed, or replace the token's feed with one. | info | No | 422 |
DALP-14710 | market- | client | The price feed of token {tokenAddress} is already mapped to price source {mappedSourceId}. | A token's price feed has at most one active source, and another mapping already feeds it. | Unmap the token from its current source first, then map it here. | info | No | 409 |
DALP-14711 | market- | client | ISIN {isin} is quoted as a percentage of par but has no par amount. | A price quoted as a percentage of par becomes a token price only when the token's par amount is known. | Enter the token's par amount, or map the ISIN with a per-unit price basis. | info | No | 422 |
DALP-14712 | market- | client | ISIN {isin} is mapped in {currency} but its price feed is quoted in {feedCurrency}. | The mapping's currency differs from the currency the token's price feed is quoted in. | Map the ISIN in the feed's currency. A price in another currency is never converted or published. | info | No | 422 |
DALP-14713 | market- | client | Token {tokenAddress} appears more than once in the list. | A token's price feed has one live mapping, so a list cannot map the same token twice. | Keep one item per token in the list. | info | No | 422 |
DALP-14714 | market- | client | Token {tokenAddress} is not in the token catalog. | The token is not in the organisation's token catalog, so its price feed cannot be named or created. | Use the address of a token the organisation holds in its catalog. | info | No | 422 |
DALP-14715 | market- | client | Price source instrument {instrumentId} not found. | The source has no live mapping with this id, either because it never existed or because it was unmapped. | Use an id from the source's list of live instruments. | info | No | 404 |
DALP-14716 | market- | client | The list holds {received} instruments and one request maps at most {maximum}. | One request maps a bounded number of instruments, because each new feed is its own chain workflow. | Split the list into requests of no more than the maximum. | info | No | 422 |
DALP-14717 | market- | client | Some instruments in the list cannot be mapped. | At least one item of the list cannot be mapped, so none was mapped and no feed was created. | Correct the items named in the refusal and send the whole list again. | info | No | 422 |
DALP-14720 | market- | client | Held price {heldPriceId} does not exist. | The organisation has no held price with this id that the caller may see. | Use an id returned by the held price list. | info | No | 404 |
DALP-14721 | market- | client | Held price {heldPriceId} was superseded. | A newer price for the feed has been published since this price was held. | Read the feed's current price. A held price that a newer price replaced needs no decision. | info | No | 409 |
DALP-14722 | market- | client | Held price {heldPriceId} changed after it was reviewed. | The price or its evidence moved beyond the hold tolerance since the approver reviewed it, so the approval would publish a price nobody reviewed. | Reload the held price, review the current price and its evidence, then decide again. | info | No | 409 |
DALP-14723 | market- | client | Held price {heldPriceId} is stale. | The held price is older than the feed's staleness bound, so publishing it would put a stale price on chain. | Reject the held price and wait for the source's next delivery. | info | No | 409 |
DALP-14724 | market- | client | Held price {heldPriceId} is already {status}. | The held price is no longer waiting for a decision. | Read the held price to see how it was settled. | info | No | 409 |
DALP-14725 | market- | client | Held price {heldPriceId} was decided by someone else first. | Another decision landed on this held price first. | Read the held price again and decide only if it still waits. | info | No | 409 |
DALP-14726 | market- | permission | You cannot decide held price {heldPriceId}. | The caller configured the source, accepted its host key or queued the delivery that produced this price, so a second person must decide it. | Ask another feeds manager, or the governor of the token, to decide the held price. | info | No | 403 |
DALP-14728 | market- | client | Price source {sourceId} is not active. | A price source that is not active publishes nothing, so its held price cannot be approved. | Activate the source, or reject the held price. | info | No | 409 |
DALP-14729 | market- | permission | Held price {heldPriceId} needs a signed-in decision. | A held price is decided by a signed-in person with a wallet verification, never by an API key. | Sign in to the Console and decide the held price there. | info | No | 403 |
DALP-14730 | market- | client | The evidence for held price {heldPriceId} is not available. | The raw message behind this price is no longer stored, or no longer matches its recorded hash. | Reject the held price and wait for the source's next delivery. | info | No | 404 |
DALP-14731 | market- | client | The decision on held price {heldPriceId} was refused ({violation}). | The approvals service refused the decision for a reason the held price has no dedicated message for. | Read the held price and its approval, then decide again if it still waits. | info | No | 409 |
DALP-14732 | market- | client | Observation {observationId} does not exist. | The price source has no observation with this id that the caller may see. | Use an id returned by the source's observation list. | info | No | 404 |
DALP-14733 | market- | client | The evidence for observation {observationId} is not available. | The raw message behind this observation is no longer stored, or no longer matches its recorded hash. | Read the observation's outcome instead, or wait for the source's next delivery. | info | No | 404 |
DALP-14734 | market- | permission | Price source {sourceId} needs a signed-in session to {action}. | This change steers what the scheduler signs and publishes unattended, so it needs a signed-in person with a wallet verification, never an API key. | Sign in to the Console and make the change there. | info | No | 403 |
DALP-14735 | market- | client | Price source, connection test, instrument operation or delivery operation {resourceId} not found. | The organisation has no price source, connection test, instrument operation or delivery operation with this id. | Use an id returned by the price source list, the connection test request, the instrument mapping request or the fetch request. | info | No | 404 |
DALP-14736 | market- | client | Price source {sourceId} cannot {action} while it is {state}. | The price source is in a state that does not allow this change. | Read the source's current state and request a change that state allows. | info | No | 409 |
DALP-14737 | market- | client | Price source {sourceId} has no credential. | The price source has no stored credential, so the scheduler could not connect with it. | Set the source's credential, then activate it again. | info | No | 409 |
DALP-14738 | market- | client | Price source {sourceId} credential changed since you read it. | Another operator replaced the source's credential after this request read its version, so nothing was stored. | Read the source again to get its current credential version, then replace the credential if it is still needed. | info | No | 409 |
DALP-14739 | market- | operational | The feed work for this instrument ended without a result. | The work that attaches the instrument or creates or adopts the price feed of the token stopped on a fault the platform does not publish. | Map the instrument again, unmapping it first if the source lists it as mapped. Contact support with the X-Request-Id of the mapping request if it fails again. | error | No | 500 |
DALP-14740 | market- | client | Price source {sourceId} is active, so its credential cannot be removed. | An active price source connects with its credential on every run, so the credential cannot be removed. | Pause the source, then remove the credential, or replace it with a new one while the source runs. | info | No | 409 |
DALP-14741 | market- | client | Price source {sourceId} is retired. | A retired price source is closed for good: retirement deleted its secrets, and a credential stored on it afterwards would never be deleted. | Create a new price source and set the credential on it. | info | No | 409 |
DALP-14742 | market- | client | Price source {sourceId} streams over {protocol} and cannot be fetched on request. | A FIX source streams prices over its open session, so there is nothing to fetch on request. | Read the source's latest delivery, or fetch from an SFTP, Bloomberg or LSEG source. | info | No | 422 |
DALP-14743 | market- | client | Price source {sourceId} already has fetch {operationId} queued. | A fetch for this source is queued and the scheduler has not picked it up yet, so a second request would only repeat it. | Read the queued fetch until it finishes, then request another if it is still needed. | info | No | 409 |
DALP-14744 | OUTSIDE_ | client | The announcement goes live outside the publication windows. | The venue blocks issuer announcements outside its publication windows, and this one goes live outside a window of an instrument trading the security. | Set displayFrom to a time inside the publication windows, or submit or approve during a window. | info | No | 422 |
DALP-14745 | market- | client | Price source {sourceId} has stopped. | The price source stopped after a credential or configuration failure, so it publishes nothing until a feeds manager clears the stop. | Ask a feeds manager to fix the cause and restart the source (pause, then activate), then approve again; or reject the held price. | info | No | 409 |
DALP-14746 | CORPORATE_ | domain | Spin-off requires a child token that can carry the new instrument's capital. | A spin-off issues capital in a new instrument, so the child token has to carry share or unit capital and be an instrument of its own. The named child carries neither capability, or it is a class of an existing multi-class instrument. | Issue a standalone share or unit token for the child, then declare the spin-off again. | info | No | 409 |
DALP-14747 | TRANSACTION_ | dependency | Transaction could not be sent before its retries ran out. | A transient fault, such as a chain node that could not be reached, outlasted every retry the transaction queue allows. The queue released the transaction's nonce, so this request cannot land. | Submit the write again with a new idempotency key. Reusing the same key returns this request's recorded failure. For a write of several chained steps, read transactionId first, because an earlier step can have completed. | error | Yes | 503 |
DALP-14748 | VENUE_ | domain | The venue requires on-chain approval for this action. | The venue's access manager has an approval count above 0 for this action, so the venue contract accepts the call only with an approved on-chain proposal. The platform has no on-chain proposal step, so it sent nothing and no transaction was queued. | Ask the venue's default admin to set the action's approval count to 0 on the venue's access manager, then repeat the request. | info | No | 409 |
DALP-14749 | FUND_ | domain | The open requests changed while the settlement was prepared. | An investor created or cancelled a request, or another settlement took one, between the moment the platform read the open requests and the moment it recorded the plan. The platform recorded nothing. | Send the same call again. The platform reads the open requests again and settles the list as it stands. | info | Yes | 409 |
DALP-14750 | FEED_ISSUER_NOT_TRUSTED | permission | The feed does not trust the organisation's issuer identity. | The feed accepts values only from a trusted issuer for its topic, and the organisation's issuer identity is not one, or the feed names no trusted issuers registry the platform can read. | Add the organisation's issuer identity to the feed's trusted issuers registry for the topic, then submit again. | info | No | 403 |
DALP-14751 | TRANSACTION_ | client | Another request for this outcome is still running. | An earlier request for the same one-time outcome, such as this claim, refund, withdrawal, maturity or redemption, is still running. The transaction queue did not send this one, so nothing moved because of it. | Wait for the running request to finish, then read its result. Send this request again only if the running one failed. data.transactionId names the running request when the queue could read it. | info | No | 400 |
The previous page is DALP-14400 to DALP-14499. The next page is DALP-15000 to DALP-19999.