Skip to main content

Contract errors DALP-1100 to DALP-1199

Cause, fix and retry flag for every on-chain contract error with a code from DALP-1100 to DALP-1199.

This page lists the 38 errors in the contract error reference with a code from DALP-1100 to DALP-1199. Match the error's id, or its dalpCode on a contract error or a failed deployment step, for example DALP-1100, to the DALP Code column, then read Retryable and Suggested Fix. The contract error reference explains each column, including Severity, and the DALP error index lists the page for every code range.

DALP Code
Message
Why
Suggested Fix
Severity
Retryable
Solidity Error
DALP-1100
This wallet is not associated with the expected identity.
The identity registry storage contract checked whether the given wallet is currently registered under the specified identity contract. The wallet's on-chain record points to a different identity, so the contract blocked the operation to prevent an incorrect lost-wallet marking.
Confirm your wallet is linked to the correct identity, or contact your administrator for assistance.
error
No
WalletNotAssociatedWithIdentity(address,address)
DALP-1101
The account does not have enough tokens. Available: {{available}}, required: {{required}}.
The ERC-20 contract requires the account to hold at least the requested amount before a transfer or burn can proceed. For tokens with custodian controls, {{available}} can exclude a frozen portion of the balance.
Check the token balance and try again with a smaller amount, or acquire more tokens.
error
No
ERC20InsufficientBalance(address,uint256,uint256)
DALP-1102
The token allowance is too low. Current allowance: {{allowance}}, required: {{required}}.
The ERC-20 contract requires a spender to have an approved allowance of at least the requested amount before it can transfer tokens on behalf of the owner. The current allowance is {{allowance}}, which is below the {{required}} needed for this transfer.
Approve a sufficient token allowance before retrying the operation.
error
No
ERC20InsufficientAllowance(address,uint256,uint256)
DALP-1103
Contract paused.
An administrator paused this contract, which can be a token sale, a yield schedule or a dividend feature. It rejects purchases, claims and withdrawals until resumed.
Ask an administrator to resume the contract, then submit the operation again.
warning
No
EnforcedPause()
DALP-1104
The account {{account}} does not have a registered identity on this platform.
The identity registry storage has no identity for {{account}}. Reading, updating or removing that account's identity needs one.
Register an identity for {{account}} first, or check the account address.
error
No
IdentityDoesNotExist(address)
DALP-1105
The approved spending amount is not enough. Current: {{currentAllowance}}, required: {{requiredAllowance}}.
During settlement approval, the contract checks that the caller has approved enough of the asset token for the settlement contract to pull. The current allowance ({{currentAllowance}}) is less than the amount the settlement flow requires ({{requiredAllowance}}), so the contract cannot lock the tokens.
Increase the token allowance to cover the required amount, then try again.
error
No
InsufficientAllowance(address,address,address,uint256,uint256)
DALP-1106
The amount exceeds the currently frozen token balance. Available: {{available}}, requested: {{requested}}.
The unfreeze request asks for more tokens ({{requested}}) than are currently held in the frozen balance for this address ({{available}}). The contract blocks the operation to prevent the frozen balance from going below zero.
Reduce the amount to at most the currently frozen balance, or freeze additional tokens first.
error
No
InsufficientFrozenTokens(uint256,uint256)
DALP-1107
Identity contract address is zero.
The identity registry storage contract requires a non-zero identity contract address. The _identity argument passed to addIdentityToStorage or updateIdentityToStorage was the zero address.
Provide the deployed on-chain identity contract address for the wallet being registered.
error
No
InvalidIdentityAddress()
DALP-1108
Settlement flow asset is not a valid ERC-20 token.
Each settlement flow must reference a non-zero token address that exposes the ERC-20 decimals() selector.
Set each flow's asset to a deployed ERC-20 token contract address and confirm the contract exposes decimals().
error
No
InvalidToken()
DALP-1109
The token's pause state does not allow this operation.
The token contract raises this error in two cases. The token is paused, and its whenNotPaused guard blocks transfers, mints and burns until an administrator resumes it; forced custodian operations are exempt. Or a halt (pause) was requested while the token is already paused. A token on an older implementation raises it for a resume (unpause) requested while the token is already active instead.
Read the token's pause state. If it is paused, submit the operation again after the token administrator resumes the token. If you asked to halt or resume it and it is already in that state, there is nothing to change.
warning
No
TokenPaused()
DALP-1110
The compliance rules blocked this mint: the recipient does not meet the token's requirements.
One of the token's compliance rules blocked the mint.
Check the recipient's identity registration and claims, then retry.
error
No
MintNotCompliant()
DALP-1111
Stale feed.
The price resolver read a feed whose last update timestamp is older than the configured maximum staleness window. The error returns the subject address, topic id, the feed's last updatedAt timestamp and the configured maxAge.
Wait for the price feed to receive a fresh update, then retry the operation. If the feed is consistently stale, contact the feed provider or your platform operator to investigate the oracle update frequency.
error
Yes
StaleFeed(address,uint256,uint256,uint256)
DALP-1112
Token compliance creation failed.
The token factory called the token compliance factory to create a per-token compliance contract, but the factory returned the zero address instead of a deployed contract address. The token deployment cannot proceed without a valid compliance contract.
This is a system configuration failure. Contact your platform operator to verify that the token compliance factory is correctly deployed and that the directory points to it.
error
No
TokenComplianceCreationFailed()
DALP-1113
Not factory token.
The migration call passed a token address that was not originally deployed by this factory. The factory tracks every token it created, and the provided address is absent from that record.
Ensure the token address belongs to this factory by checking the factory's token list. Only tokens this factory originally deployed can be migrated through it.
error
No
NotFactoryToken(address)
DALP-1114
Only compliance engine.
An address other than the bound compliance engine called a configuration update on this module. The module restricts this operation to the engine contract it governs.
Configuration updates to this compliance module must be sent through the compliance engine that governs it. Call updateConfig via the engine, not directly on the module.
error
No
OnlyComplianceEngine()
DALP-1115
Token registries already exist.
The registry factory already deployed per-token identity and storage registries for this token address. The registry factory enforces one set of per-token registries per token to prevent duplicate deployments.
The registry factory creates per-token registries only once per token. Retrieve the existing registries from the registry factory instead of attempting to create new ones.
error
No
TokenRegistriesAlreadyExist(address)
DALP-1116
Token registry implementations missing.
Deploying the per-token registry factory requires all three registry implementations (token identity registry, token storage registry, and identity registry) to be present in the directory. At least one is missing.
A system administrator must register all three per-token registry implementations in the directory before the registry factory can deploy.
error
No
TokenRegistryImplementationsMissing()
DALP-1117
Compliance module type mismatch.
Updating a compliance module implementation requires the new contract's typeId() to match the module slot being updated. The new implementation reports a different typeId (actualTypeId) than the slot's registered identifier (expectedTypeId), indicating you provided the wrong implementation.
Deploy or supply a compliance module implementation whose typeId() matches the module slot identifier you are updating. Verify the correct implementation address against the module registry.
error
No
ComplianceModuleTypeMismatch(bytes32,bytes32)
DALP-1118
Unsupported compliance module.
The address provided as a compliance module implementation does not support any recognized compliance module interface. The directory validates the interface via ERC-165 before accepting an implementation, and this address failed all three probes.
Supply an implementation address that correctly implements a supported compliance module interface. Verify you have deployed the contract and that it exposes the expected ERC-165 interface identifiers.
error
No
UnsupportedComplianceModule(address)
DALP-1119
Token scope not supported.
The compliance module you are installing belongs to a token-level compliance engine. Token-level engines do not support per-token inclusion or exemption scope filters; only the system compliance engine accepts those dimensions. The contract reverts whenever the scope passed to installScopedModule contains a non-empty tokenInclusion or tokenExemption list.
Remove the tokenInclusion and tokenExemption entries from the scope before calling installScopedModule on a token-level compliance engine. If you require per-token scoping, use the system compliance engine instead.
error
No
TokenScopeNotSupported()
DALP-1120
Compliance check failed: {{reason}}.
A compliance rule on the token refused this transfer or mint. The reason after the colon names the check that failed, for example a blocked address or a blocked country.
Change the recipient or the amount so it meets that rule, or ask a compliance officer to review the token's compliance rules, then try again.
error
No
ComplianceCheckFailed(address,bytes32,bytes32,string)
DALP-1121
Identity v2 not supported.
The identity factory targets V2 identity proxy deployment, but the underlying implementation contract does not expose the IDALPIdentityV2 interface. The factory checks supportsInterface at deploy time and reverts when the implementation predates V2.
Ask the platform administrator to point the factory at an implementation that supports IDALPIdentityV2, then retry.
error
No
IdentityV2NotSupported()
DALP-1122
Authorization deadline expired.
The signed authorization included a deadline timestamp, and the current block time is past that deadline. The contract validates the authorization before creating the identity with management keys and reverts when the deadline has elapsed.
Request a new signed authorization with a deadline that has not passed, then resubmit the identity creation call with the updated signature and deadline.
error
No
ExpiredIdentityManagementKeyAuthorization(uint256)
DALP-1123
Identity authorization signature does not match the wallet.
The EIP-712 signature for createIdentityWithManagementKeyAuthorization is malformed or recovered to an address other than the wallet. recovered holds the recovered address.
Re-sign the authorization digest with the private key of the wallet address passed as _wallet. Confirm the domain separator matches the identity factory contract and chain.
error
No
InvalidIdentityManagementKeyAuthorization(address,address)
DALP-1124
The scheduled maturity date has passed; early maturity is not applicable.
The emergency early maturity call is only available before the scheduled maturity date. The current time ({{currentTime}}) has reached or passed the maturity timestamp ({{maturityDate}}), so the early maturity path is no longer applicable.
Use the regular maturity operation (governance role) to mature this bond. The emergency window applies only before the scheduled date.
error
No
MaturityDateAlreadyReached(uint256,uint256)
DALP-1125
Fee rate too high.
The fee rate supplied in the feature configuration exceeds 10,000 basis points (100%). The contract enforces that no fee rate can be set above 100 percent of the transaction amount.
Set feeBps to a value of 10,000 or less in the feature configuration and resubmit.
error
No
FeeRateTooHigh(uint16)
DALP-1126
Fee token required when fees non zero.
The external transaction fee feature configuration sets at least one of mintFee, burnFee, or transferFee to a non-zero value but leaves the fee token address as the zero address. The contract requires a fee token whenever any fee amount is non-zero.
Supply a valid fee token address in the configuration alongside the non-zero fee amounts, or set all fee amounts to zero if no fee token is available.
error
No
FeeTokenRequiredWhenFeesNonZero()
DALP-1127
Conversion feature target token address is zero.
The conversion feature configuration requires a non-zero targetToken address. The value supplied in the config was the zero address.
Set config.targetToken to the deployed address of the token to be received after conversion.
error
No
InvalidTargetToken()
DALP-1128
Maturity date zero.
The maturity date value in the maturity redemption feature configuration is zero. The contract requires a non-zero Unix timestamp for the maturity date before it will accept the configuration.
Provide a valid future Unix timestamp as the maturityDate in the feature configuration and resubmit.
error
No
MaturityDateZero()
DALP-1129
Native recovery failed.
The paymaster refund splitter sent native currency to the target address and the low-level call returned false. Either the recipient contract rejected the transfer or it ran out of gas.
Verify that the recipient address can accept native currency transfers. If the recipient is a contract, confirm it has a payable fallback or receive function, then retry the recoverNative call.
error
No
NativeRecoveryFailed()
DALP-1130
Token not system registered.
The system identity registry does not record the token address you provided. The token sale factory requires all tokens to be registered in the system registry before a sale can be created for them.
Confirm the system has registered the token in its identity registry before you create a token sale.
error
No
TokenNotSystemRegistered()
DALP-1131
Current-holder counting needs a token that has no holders yet; choose lifetime counting for this rule.
A current-holder count starts from zero, so the module refuses a scope it cannot prove is empty. A token rule is refused when its token ({{token}}) already has supply. A global control is refused with the zero address, because a system-wide scope has no single token whose supply the module can check.
Install the rule with lifetime counting. For a token rule, current-holder counting can be installed before the token is minted; for a global control it is not available.
error
No
CountingScopeHasHoldings(address)
DALP-1132
The counting policy is fixed at installation.
The configuration named a counting policy different from the one this rule was installed with. Changing it would recount existing holders under different rules.
Resubmit the configuration with the installed counting policy. To count differently, remove the rule and install a new one.
error
No
CountingPolicyImmutable()
DALP-1133
Country limits are unavailable on this rule.
This rule was upgraded from Investor count, and wallets counted before the upgrade carry no country, so per-country counts would be wrong. The maximum still applies.
Resubmit the configuration without country limits.
error
No
CountryAccountingIncomplete()
DALP-1134
Holder is not registered.
A holder lock is keyed on the holder's identity, and the wallet named for the lock is not registered in the token's identity registry.
Register the holder's wallet with an identity first, or name a wallet of the holder that is already registered.
error
No
HolderNotRegistered(address)
DALP-1135
Holder lock amount is invalid.
A holder lock must lock a non-zero amount that fits the module's stored width.
Lock a positive amount in base units; to remove a lock, clear it instead.
error
No
InvalidHolderLockAmount(uint256)
DALP-1136
Unlock time must be in the future.
A holder lock's unlock time is not later than the current block time, so the lock would never refuse a transfer.
Choose an unlock time after the current time.
error
No
UnlockTimeNotInFuture(uint256)
DALP-1137
Holder lock not found.
The holder's identity has no lock on this token to clear.
Read the holder's lock before clearing it; nothing needs clearing when no lock is set.
error
No
HolderLockNotFound(address)

The previous page is DALP-1050 to DALP-1099. The next page is DALP-2000 to DALP-2999.

Was this page helpful?