Skip to main content

Contract errors DALP-4100 to DALP-4149

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

This page lists the 50 errors in the contract error reference with a code from DALP-4100 to DALP-4149. Match the error's id, or its dalpCode on a contract error or a failed deployment step, for example DALP-4100, 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-4100
Governor disabled deposit.
The governor refuses ETH, ERC-721 and ERC-1155 transfers because its timelock holds the treasury.
Send the funds or tokens to the governance timelock instead.
error
No
GovernorDisabledDeposit()
DALP-4101
Governor insufficient proposer votes.
The proposer's current voting weight is below the proposal threshold required by the Governor. The contract compares the proposer's votes at the current block against the configured threshold and blocks proposals that do not meet it.
The error returns the proposer address, current votes, and the required threshold. Increase the proposer's delegated voting weight to at least the threshold value before submitting a proposal.
error
No
GovernorInsufficientProposerVotes(address,uint256,uint256)
DALP-4102
Proposal arrays have mismatched or zero length.
The propose call requires the targets, values, and calldatas arrays to be the same length and to contain at least one entry. The contract received arrays whose lengths differ or all three are empty.
Ensure targets, values, and calldatas each contain the same number of entries and that the proposal includes at least one call before submitting.
error
No
GovernorInvalidProposalLength(uint256,uint256,uint256)
DALP-4103
Vote signature does not match the stated voter.
The signature supplied to castVoteBySig or castVoteWithReasonAndParamsBySig did not recover to the voter address. The contract verifies the EIP-712 signature before recording the vote.
Re-sign the ballot with the voter's key over proposalId, support, voter and the voter's current nonces(voter) value. For the extended call, sign reason and params too.
error
No
GovernorInvalidSignature(address)
DALP-4104
Vote params have the wrong length for the chosen vote type.
When casting a full vote (support 0, 1, or 2), the params field must be empty. When casting a fractional vote (support 255), params must be exactly 48 bytes encoding three packed uint128 values (againstVotes, forVotes, abstainVotes).
Pass an empty params for a full vote, or pass exactly 48 bytes encoded as abi.encodePacked(uint128, uint128, uint128) for a fractional vote.
error
No
GovernorInvalidVoteParams()
DALP-4105
Vote support value is outside the accepted range.
In a For/Against/Abstain proposal, support accepts only 0 (Against), 1 (For) or 2 (Abstain).
Set support to 0, 1 or 2.
error
No
GovernorInvalidVoteType()
DALP-4106
Voting period must be at least one block.
The Governor contract requires the voting period to be a positive value. A voting period of zero would open and immediately close every proposal, so the contract rejects it.
Set the voting period to a value greater than zero when calling setVotingPeriod or during Governor initialization.
error
No
GovernorInvalidVotingPeriod(uint256)
DALP-4107
Governor nonexistent proposal.
No proposal exists with the given proposalId. The Governor derives proposal IDs deterministically from the proposal parameters; an ID that was never created returns no record.
Verify the proposalId by recomputing it from the original proposal parameters (targets, values, calldatas, description hash) or by reading it from the ProposalCreated event the contract emitted when you submitted the proposal.
error
No
GovernorNonexistentProposal(uint256)
DALP-4108
Governor not queued proposal.
The proposal is not in the Queued state. Executing a proposal through a timelock-backed Governor requires you to queue the proposal first and wait for the timelock delay to elapse.
Check the proposal state. If it is in the Succeeded state, call queue first. If it is already Queued, wait for the timelock delay to pass before calling execute.
error
No
GovernorNotQueuedProposal(uint256)
DALP-4109
Governor only executor.
An address other than the Governor's designated executor (typically the timelock contract) sent this call. Governor operations like relay require the executor itself to send the message.
Route this call through the governance execution path rather than sending it directly. Submit the operation as a governance proposal and let the timelock execute it.
error
No
GovernorOnlyExecutor(address)
DALP-4110
Governor queue unavailable on this contract.
You called queue on a Governor that has no timelock or queue module. This Governor executes proposals directly without a queuing phase.
Do not call queue on this Governor. After a proposal reaches the Succeeded state, call execute directly.
error
No
GovernorQueueNotImplemented()
DALP-4111
Governor restricted proposer.
The proposal description ends with #proposer=<address>, which reserves the proposal for that address. A different address submitted it.
Submit from the address named in the description, or drop the #proposer= suffix.
error
No
GovernorRestrictedProposer(address)
DALP-4112
Governor unable to cancel.
A proposal can be cancelled only while it is Pending or Queued. Only an account that holds the token's governance role can cancel it.
Cancel from an account with the token's governance role, before voting starts or while the proposal waits in the timelock.
error
No
GovernorUnableToCancel(uint256,address)
DALP-4113
Governor unexpected proposal state.
The proposal is in a lifecycle state that does not permit the requested operation. For example, queuing requires Succeeded, executing requires Succeeded or Queued, and voting requires Active. The error carries the current state and a bitmask of acceptable states.
Read the proposal state before performing governance operations. The error returns the current state and the expected states bitmask so you can determine what step to take next in the proposal lifecycle.
error
No
GovernorUnexpectedProposalState(uint256,uint8,bytes32)
DALP-4114
Hard cap exceeded.
The requested token purchase would push the total amount sold past the sale's hard cap. The contract tracks cumulative tokens sold and rejects any purchase that would exceed the configured maximum supply for this sale.
Reduce the purchase amount so that the total sold does not exceed the hard cap. You can query totalSold and hardCap on the token sale contract to determine the remaining capacity.
error
No
HardCapExceeded()
DALP-4115
Hard cap must be positive.
You submitted a token sale creation request with a hard cap of zero. The factory requires a positive hard cap to define the maximum number of tokens available for sale.
Provide a hardCap value greater than zero when calling createTokenSale.
error
No
HardCapMustBePositive()
DALP-4116
Hashlock reveal not required.
You called revealSecret on an XvP settlement that has no external cross-chain flows. Hashlock secret revelation applies only to settlements that involve external flows; settlements with only local flows do not use a hashlock.
Check the settlement's hasExternalFlows flag before calling revealSecret. For settlements with only local flows, proceed directly to execution without revealing a secret.
error
No
HashlockRevealNotRequired()
DALP-4117
History not supported.
The price feed runs in LATEST_ONLY mode, which retains only the most recent observation. The Chainlink-compatible getRoundData function requires historical round storage, which this feed does not maintain.
Use latestRoundData to retrieve the most recent value from this feed, or use the indexed API for past accepted observations. For historical reads directly from a contract, register a separately deployed compatible feed that retains history.
error
No
HistoryNotSupported()
DALP-4118
Identities required.
The transfer-approval compliance module checks that both the sender and the recipient have a registered on-chain identity. When either party's identity address resolves to zero, the contract cannot look up a valid approval record and blocks the transfer.
Ensure both the sending and receiving wallet addresses have an on-chain identity registered in the identity registry before submitting this transfer.
error
No
IdentitiesRequired()
DALP-4119
Implementation not set in factory.
The proxy contract queries the factory for its logic implementation address at deployment time. The factory holds no implementation address yet, so the returned address is zero and the proxy cannot initialize.
Set a valid implementation address on the factory before deploying or upgrading this proxy.
error
No
ImplementationNotSetInFactory()
DALP-4120
Index out of bounds.
The index you supplied is greater than or equal to the total number of deployed systems recorded in the factory. The contract cannot return a system at a position that does not exist.
Call getSystemCount() first to check the valid range, then supply an index between 0 and getSystemCount() minus 1.
error
No
IndexOutOfBounds(uint256,uint256)
DALP-4121
Initial key already setup.
The ERC-734 identity contract already has a management key set during initialization. The contract rejects a second initialization call to prevent overwriting the existing key set.
The identity contract is already fully initialized. No further key setup call is needed. To change keys, use the key-management functions on the live identity instead.
error
No
InitialKeyAlreadySetup()
DALP-4122
Initialization deadline passed.
The vesting airdrop contract requires claimants to initialize their vesting schedule before a fixed deadline. The current block timestamp is past that deadline, so new vesting initializations are no longer accepted.
Contact the token issuer to ask whether a new airdrop round will open.
error
No
InitializationDeadlinePassed()
DALP-4123
Initialization with zero address.
You supplied a zero address as the implementation for this proxy to delegate to. A proxy cannot forward calls to the zero address, so initialization is rejected.
Supply a valid, non-zero implementation contract address when deploying or initializing this proxy.
error
No
InitializationWithZeroAddress()
DALP-4124
This amount is more than the interest accrued.
The requested amount exceeds the interest this holder has accrued and has not claimed or converted.
Reduce the amount to at most the accrued interest, or wait for more interest to accrue, then retry.
error
No
InsufficientAccruedInterest(uint256,uint256)
DALP-4125
This withdrawal is more than the deposit held in the EntryPoint.
The ERC-4337 EntryPoint rejected a deposit withdrawal because the requested withdrawal amount exceeds the account's or paymaster's current deposit balance held in the EntryPoint.
Reduce the withdrawal amount to at most the current deposited balance shown in the EntryPoint for this account or paymaster.
error
No
InsufficientDeposit(uint256,uint256)
DALP-4126
Conversion amount exceeds the holder's token balance.
The conversion requested a principal amount that exceeds the holder's current token balance. The contract validates the available balance before executing any conversion.
Reduce the principal conversion amount to at most the holder's current token balance, or pass zero to convert the full available balance.
error
No
InsufficientPrincipal(uint256,uint256)
DALP-4127
This transaction does not have enough signer confirmations.
The DALPVault multisig transaction requires a minimum number of valid signer confirmations before execution. The number of signatures provided is below that required threshold.
Collect the remaining required signatures from authorized vault signers and resubmit the transaction.
error
No
InsufficientSignatures(uint256,uint256)
DALP-4128
The signers' combined weight is below the required threshold.
The DALPVault multisig uses weighted signatures and requires the combined weight of all provided signers to meet or exceed a configured threshold. The total weight of the submitted signatures is below that threshold.
Add signatures from higher-weight signers or collect more signer confirmations until the combined weight meets the required threshold.
error
No
InsufficientWeight(uint256,uint256)
DALP-4129
Interest provider missing.
The conversion feature targets accrued interest, and it needs exactly one interest provider. The configuration names none, and the token has none attached or more than one.
Attach one interest provider to the token, or set it explicitly in the conversion configuration.
error
No
InterestProviderMissing()
DALP-4130
Interface registration limit reached.
Each SMART token extension can register a fixed maximum number of ERC-165 interface identifiers. The contract has filled all available slots in the interface registry, so it cannot accept another interface.
Contact support with the token address and the requestId from the error.
error
No
InterfaceRegistrationLimitReached()
DALP-4131
Internal function.
The ERC-4337 EntryPoint rejected a direct external call to a function that only the EntryPoint itself may call as part of its internal user-operation processing loop.
This function is part of the EntryPoint's internal execution flow. Submit the operation through the standard ERC-4337 user-operation submission path instead of calling this function directly.
error
No
InternalFunction()
DALP-4132
Interoperable address empty reference and address.
When formatting an ERC-7930 interoperable address, both the chain reference and the address components were empty. At least one of the two components must contain data for the encoding to be valid.
Provide either a non-empty chain reference, a non-empty address component, or both when constructing the interoperable address.
error
No
InteroperableAddressEmptyReferenceAndAddress()
DALP-4133
Interoperable address parsing error.
The byte sequence supplied does not conform to the ERC-7930 version-1 interoperable address encoding. The parser could not extract a valid version header, chain type, chain reference, or address from the input.
Verify that a conforming ERC-7930 v1 encoder produced the interoperable address bytes and that no bytes were truncated or corrupted before submitting.
error
No
InteroperableAddressParsingError(bytes)
DALP-4134
Access manager must implement the required interface.
The contract initialization checks that the access manager address supports the IDALPSystemAccessManager interface via ERC-165. The provided address failed that check.
Pass the address of a deployed IDALPSystemAccessManager-compliant contract to the initializer.
error
No
InvalidAccessManager()
DALP-4135
Nonce does not match the account's current nonce.
The contract uses OpenZeppelin's Nonces utility to prevent replay attacks. The nonce supplied with the signed message does not equal the account's stored current nonce.
Fetch the account's current nonce from the contract before signing, and include that value in the message.
error
No
InvalidAccountNonce(address,uint256)
DALP-4136
Addon implementation address is zero.
The system addon registry requires a non-zero implementation address when registering a new addon. The implementation_ argument passed to registerSystemAddon was the zero address.
Deploy the addon implementation contract and pass its address to registerSystemAddon.
error
No
InvalidAddonAddress()
DALP-4137
Address is zero or not usable.
An address argument is the zero address, or the contract it names lacks the interface the call needs.
Pass a non-zero address of the right contract type.
error
No
InvalidAddress()
DALP-4138
Withdrawal amount is zero.
The fixed yield schedule contract requires a non-zero denomination asset amount when withdrawing. A withdrawal of zero tokens is not a valid operation.
Specify a non-zero amount of denomination asset tokens to withdraw.
error
No
InvalidAmount()
DALP-4139
Claim authorization contract address is zero or missing the required interface.
The contract validates each authorization contract by calling supportsInterface for IClaimAuthorizer. The provided address is either the zero address or a contract that did not return true for that interface check.
Supply the address of a deployed contract that correctly implements IClaimAuthorizer and passes ERC-165 interface detection.
error
No
InvalidAuthorizationContract(address)
DALP-4140
Yield basis-per-unit is zero.
The fixed treasury yield schedule requires a non-zero basisPerUnit value. A value of zero produces no yield and is treated as a configuration error.
Set basisPerUnit to a positive integer equal to the yield amount per token unit before submitting the schedule.
error
No
InvalidBasisPerUnit()
DALP-4141
Fee beneficiary address is zero.
The EIP-4337 EntryPoint requires the beneficiary address passed to handleOps to be a non-zero address. A zero address cannot receive the gas-cost refund.
Pass a valid, non-zero address as the beneficiary argument when calling handleOps.
error
No
InvalidBeneficiary(address)
DALP-4142
Token supply cap is zero or below the current total supply.
The contract enforces a cap that must be greater than zero and, when updated, must be at least as large as the current total supply. A cap of zero would make minting impossible, and a cap below current supply would be inconsistent.
Provide a cap value that is greater than zero and greater than or equal to the current token total supply.
error
No
InvalidCap(uint256)
DALP-4143
Contract address is zero or not supported.
The call needs a non-zero contract address: a subject for the trusted issuers meta-registry, an owning contract that implements IContractWithIdentity for a contract identity, or each extra management key of a contract identity.
Provide the actual on-chain address of the subject whose registry entry is being configured.
error
No
InvalidContractAddress()
DALP-4144
Conversion window end is at or before the start, or already past.
The contract checks two conditions: the window end must be after the window start, and the window end minus one must be at or after the current block timestamp. The provided window fails at least one of these checks.
Set the window start to a time before the window end, and set the end to a future timestamp (at least one second ahead of the current block time).
error
No
InvalidConversionWindow(uint256,uint256)
DALP-4145
Token decimal precision exceeds the maximum of 18.
The SMART token core enforces a maximum of 18 decimal places to remain compatible with WAD-based fixed-point arithmetic. A decimals value above 18 is out of range.
Set the decimals parameter to a value between 0 and 18 inclusive.
error
No
InvalidDecimals(uint8)
DALP-4146
Denomination asset is not valid.
The denomination asset is the zero address or the token itself, or, for a bond, a contract that does not answer totalSupply(). Bonds, maturity redemption, conversion and the yield features check it at setup. A fixed yield schedule also raises it when a withdrawal names the zero address as recipient.
Supply the address of a deployed ERC-20 that is not this token. For a schedule withdrawal, name a non-zero recipient.
error
No
InvalidDenominationAsset()
DALP-4147
Feeds directory address is zero.
The scalar feed aggregator adapter stores the directory address as an immutable at construction time. A zero address cannot be used as a feeds directory.
Pass the address of the deployed IFeedsDirectory contract when constructing the adapter.
error
No
InvalidDirectory()
DALP-4148
Directory address is zero.
Several contracts (the system factory, the global trusted issuers registry, and the topic scheme registry) require a non-zero directory address during initialization. Without a valid directory the contract cannot resolve implementation addresses.
Provide the address of the deployed IDALPDirectory contract during construction or initialization.
error
No
InvalidDirectoryAddress()
DALP-4149
Yield end date is not after the start date.
The fixed treasury yield schedule requires the end date to be strictly greater than the start date. Providing an end date equal to or before the start date produces a zero-length or reversed schedule.
Set the end date to a timestamp that is at least one second after the start date.
error
No
InvalidEndDate()

The previous page is DALP-4050 to DALP-4099. The next page is DALP-4150 to DALP-4199.

Was this page helpful?