Skip to main content

Platform API errors DALP-14500 to DALP-14999

Cause, fix, HTTP status and retry flag for every Platform API error with a code from DALP-14500 to DALP-14999.

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_FEATURES_YIELD_TOP_UP_INSUFFICIENT_BALANCE
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_FEATURES_YIELD_TOP_UP_FROM_TREASURY
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_FEATURES_YIELD_TREASURY_UNDERFUNDED
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_INSUFFICIENT_BALANCE
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_TOP_UP_FROM_TREASURY
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_TREASURY_UNDERFUNDED
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-data.price-source.VERSION_CONFLICT
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-data.price-source.HOST_KEY_CHANGED
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-data.price-source.HEARTBEAT_EXCEEDS_BOUND
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-data.price-source.ENDPOINT_REFUSED
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-data.price-source.PLAINTEXT_REFUSED
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-data.price-source.CREDENTIAL_KIND_REFUSED
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-data.price-source.PROTOCOL_FIXED
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-data.price-source.instrument.FEED_DESCRIPTION_UNPARSEABLE
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-data.price-source.instrument.FEED_NOT_ISSUER_SIGNED
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-data.price-source.instrument.FEED_ALREADY_MAPPED
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-data.price-source.instrument.PAR_AMOUNT_REQUIRED
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-data.price-source.instrument.CURRENCY_MISMATCH
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-data.price-source.instrument.TOKEN_REPEATED
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-data.price-source.instrument.TOKEN_NOT_FOUND
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-data.price-source.instrument.NOT_FOUND
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-data.price-source.instrument.LIST_TOO_LARGE
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-data.price-source.instrument.LIST_REFUSED
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-data.held-price.NOT_FOUND
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-data.held-price.SUPERSEDED
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-data.held-price.CHANGED_SINCE_REVIEW
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-data.held-price.STALE
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-data.held-price.ALREADY_DECIDED
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-data.held-price.VERSION_MOVED
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-data.held-price.APPROVER_EXCLUDED
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-data.held-price.SOURCE_PAUSED
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-data.held-price.SESSION_REQUIRED
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-data.held-price.EVIDENCE_UNAVAILABLE
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-data.held-price.DECISION_REFUSED
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-data.price-source.observation.NOT_FOUND
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-data.price-source.observation.EVIDENCE_UNAVAILABLE
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-data.price-source.SESSION_REQUIRED
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-data.price-source.NOT_FOUND
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-data.price-source.TRANSITION_REFUSED
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-data.price-source.CREDENTIAL_MISSING
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-data.price-source.CREDENTIAL_CONFLICT
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-data.price-source.instrument.FEED_WORK_FAILED
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-data.price-source.CREDENTIAL_IN_USE
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-data.price-source.RETIRED
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-data.price-source.FETCH_NOT_SUPPORTED
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-data.price-source.FETCH_PENDING
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_PUBLICATION_WINDOW
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-data.held-price.SOURCE_STOPPED
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_ACTION_CHILD_INELIGIBLE
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_QUEUE_RETRIES_EXHAUSTED
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_ONCHAIN_APPROVAL_REQUIRED
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_SUBSCRIPTION_REQUESTS_CHANGED
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_QUEUE_OUTCOME_IN_FLIGHT
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.

Was this page helpful?