Skip to Content
HelpContract Errors

Contract Errors

This page maps the airdrop contract error codes to plain-language meanings.

Use it when:

  • a wallet or explorer shows a raw onchain error
  • you need to understand what a failed transaction means
  • support asks for the exact contract error code

Campaign Setup and Access

CodeNameMeaningWhat to check
6000AccountNotFoundRequired account could not be found.Make sure the campaign, mint, or related account exists on the expected network.
6001InvalidConfigAuthorityThe wrong config authority was used.Confirm the connected wallet is the expected authority.
6002AccountAlreadyInitializedThe account was already created.Make sure you are not creating the same object twice.
6003InvalidAirdropTypeThe requested airdrop type is invalid.Re-check whether the flow should be Onchain List or Claim-based (Merkle).
6004InvalidActionTypeThe requested action is not valid in this context.Confirm you are using the right contract action for the current step.
6005InvalidPubkeyA provided public key is invalid.Check copied addresses for typos or truncation.
6006InvalidTimestampA timestamp is malformed or out of range.Re-check start and end dates.
6007InvalidAmountThe provided amount is invalid.Check token amounts, recipient amounts, and formatted input values.
6008UriTooLongA URI field is too long.Shorten metadata or related URI input.
6009InvalidSourceAccountThe selected source token account is not valid.Check the wallet, mint, and source token account pairing.
6026InvalidAirdropAccountThe provided airdrop account is not valid.Confirm you opened the correct campaign.
6027MissingDraftRoundA required draft round is missing.Re-open the campaign from the current draft flow.
6028InvalidCreatorThe caller is not the expected creator.Use the creator wallet for management actions.
6029InvalidDraftRoundThe draft round is not valid.Refresh the campaign and retry from the right draft state.
6034InvalidAirdropStatusThe current campaign status does not allow this action.Make sure the campaign is in the right state for the action you are trying.
6035InvalidProtocolVaultThe protocol vault account is invalid.Check that the app is pointing to the correct environment and vault setup.
6036InvalidAirdropDraftIndexThe referenced draft index is invalid.Re-open the latest draft and avoid using stale URLs.
6037InvalidPdaA PDA derivation is invalid.This often points to a mismatched account or environment.

Schedule and Lifecycle

CodeNameMeaningWhat to check
6010AirdropNotStartedThe campaign is not live yet.Check whether the campaign has been started or is still scheduled for later.
6011AirdropEndedThe campaign already ended.Confirm the claim window has not already closed.
6012AirdropNotEndedThe campaign has not ended yet.This often appears when using an action that requires the end date to have passed.
6013AirdropHasNoEndThe campaign has no end date.Set an end date if the action requires a bounded schedule.
6014InvalidStateThe current state does not allow the action.Re-check whether setup, funding, or launch is already complete.
6015EndBeforeStartThe end time is before the start time.Fix the schedule ordering.
6016StartTimeInPastThe chosen start time is already in the past.Set a valid future time or leave start blank for immediate launch.
6053AirdropDurationTooShortThe campaign duration is too short.Increase the claim window to a valid duration.

Claim and Balance

CodeNameMeaningWhat to check
6017AlreadyClaimedThis allocation was already claimed.Confirm whether the wallet has already completed the claim.
6018InvalidMerkleProofThe submitted Merkle proof is invalid.Check that the recipient dataset, proof, and wallet all match the same campaign.
6019MathOverflowA numeric calculation overflowed.Re-check amounts and totals for unusually large values.
6020InsufficientVaultBalanceThe vault does not hold enough tokens.Confirm the campaign is fully funded before claims or withdrawals.
6021InsufficientFundsThe wallet or account does not hold enough funds.Check token balance and SOL balance for fees.
6030InvalidMintThe provided mint is invalid.Confirm you selected the correct mint address.
6031InvalidTokenProgramThe token program does not match the mint.Re-check whether the mint belongs to Token or Token-2022.
6032InvalidMemoProgramThe memo program is invalid.This usually points to an environment or account mismatch.
6033OverflowA calculation overflowed.Re-check unusually large amounts, totals, or aggregated dataset values.

Mint and Token Restrictions

CodeNameMeaningWhat to check
6022InvalidCostLamportsThe creation cost exceeded the allowed limit.Re-check rent-heavy setup or account growth.
6023UnsupportedMintThe mint is not supported by the contract rules.Confirm the mint type and extension set are allowed for airdrops.
6024MintFreezeAuthorityNotAllowedThe mint still has freeze authority.Revoke freeze authority before using the token for an airdrop if required.
6025SourceCpiGuardEnabledThe source token account has CPI Guard enabled.Use a compatible source token account for the action.
6043TransferFeeCalculationFailedThe transfer fee could not be calculated.Re-check Token-2022 transfer fee configuration and required deposit math.

Recipient Lists and Merkle Data

CodeNameMeaningWhat to check
6038InvalidLeafDataMerkle leaf or recipient data is malformed.Rebuild the recipient dataset and Merkle files.
6039EmptyRecipientListNo recipients were provided.Make sure the CSV or recipient input contains rows.
6040AppendRecipientsLimitExceededToo many recipients were appended in one onchain step.Reduce batch size or switch to Merkle for large campaigns.
6041ListEmptyThe onchain list is empty.Add recipients before trying actions that depend on them.
6042ListChunkOverflowRecipient list chunking exceeded the allowed shape.Split the list differently or use Merkle for larger datasets.
6044EmptyMerkleRootsNo Merkle roots were provided.Upload or generate Merkle files before registration.
6045MerkleRootsLimitExceededToo many Merkle roots were provided.Reduce root count or rebuild the dataset with valid limits.
6046InvalidMerkleRootA Merkle root is invalid.Rebuild and re-upload the Merkle files.
6047InvalidMerkleLeafCountA root has an invalid leaf count.Check the generated Merkle metadata.
6048MerkleLeafCountExceededA root contains too many leaves.Rebuild the dataset so each root stays within the supported limit.
6049InvalidMerkleRootSumA root sum is invalid.Re-check the generated totals in the Merkle files.
6050DuplicateMerkleRootThe same root was submitted more than once.Remove duplicate roots before registration.
6051MerkleRootsAlreadyRegisteredMerkle roots were already registered for this campaign.Avoid registering the same root set twice.
6052MerkleRootSumTotalMismatchThe combined root sums do not match the expected total.Rebuild the Merkle dataset and confirm aggregate totals.

Notes

  • Anchor custom errors usually start at 6000 and increase by declaration order.
  • A wallet UI may show only the message, only the code, or both.
  • If a transaction fails in the explorer, compare the code or message here and then continue with Troubleshooting.
Last updated on