How to use this page
- Search your error code or hex value with
Cmd+F/Ctrl+F - Check for debug guides - some errors have detailed troubleshooting pages
- Still having issues? We’re here to help!
- Reach out on Discord for support
- Share the exact error code and a reproducer (GitHub repo / gist)
For help with debugging use the MCP Configuration or AskDevin via
6000 - 6053 / SystemProgramError Variants
| Code | Hex | Error | Message |
|---|---|---|---|
| 6000 | 0x1770 | SumCheckFailed | ”Sum check failed” |
| 6001 | 0x1771 | SignerCheckFailed | ”Signer check failed” |
| 6002 | 0x1772 | CpiSignerCheckFailed | ”Cpi signer check failed” |
| 6003 | 0x1773 | ComputeInputSumFailed | ”Computing input sum failed.” |
| 6004 | 0x1774 | ComputeOutputSumFailed | ”Computing output sum failed.” |
| 6005 | 0x1775 | ComputeRpcSumFailed | ”Computing rpc sum failed.” |
| 6006 | 0x1776 | InvalidAddress | ”InvalidAddress” |
| 6007 | 0x1777 | DeriveAddressError | ”DeriveAddressError” |
| 6008 | 0x1778 | CompressedSolPdaUndefinedForCompressSol | ”CompressedSolPdaUndefinedForCompressSol” |
| 6009 | 0x1779 | DecompressLamportsUndefinedForCompressSol | ”DecompressLamportsUndefinedForCompressSol” |
| 6010 | 0x177A | CompressedSolPdaUndefinedForDecompressSol | ”CompressedSolPdaUndefinedForDecompressSol” |
| 6011 | 0x177B | DeCompressLamportsUndefinedForDecompressSol | ”DeCompressLamportsUndefinedForDecompressSol” |
| 6012 | 0x177C | DecompressRecipientUndefinedForDecompressSol | ”DecompressRecipientUndefinedForDecompressSol” |
| 6013 | 0x177D | WriteAccessCheckFailed | ”WriteAccessCheckFailed” |
| 6014 | 0x177E | InvokingProgramNotProvided | ”InvokingProgramNotProvided” |
| 6015 | 0x177F | InvalidCapacity | ”InvalidCapacity” |
| 6016 | 0x1780 | InvalidMerkleTreeOwner | ”InvalidMerkleTreeOwner” |
| 6017 | 0x1781 | ProofIsNone | ”ProofIsNone” |
| 6018 | 0x1782 | ProofIsSome | ”Proof is some but no input compressed accounts or new addresses provided.” |
| 6019 | 0x1783 | EmptyInputs | ”EmptyInputs” |
| 6020 | 0x1784 | CpiContextAccountUndefined | ”CpiContextAccountUndefined” |
| 6021 | 0x1785 | CpiContextEmpty | ”CpiContextEmpty” |
| 6022 | 0x1786 | CpiContextMissing | ”CpiContextMissing” |
| 6023 | 0x1787 | DecompressionRecipientDefined | ”DecompressionRecipientDefined” |
| 6024 | 0x1788 | SolPoolPdaDefined | ”SolPoolPdaDefined” |
| 6025 | 0x1789 | AppendStateFailed | ”AppendStateFailed” |
| 6026 | 0x178A | InstructionNotCallable | ”The instruction is not callable” |
| 6027 | 0x178B | CpiContextFeePayerMismatch | ”CpiContextFeePayerMismatch” |
| 6028 | 0x178C | CpiContextAssociatedMerkleTreeMismatch | ”CpiContextAssociatedMerkleTreeMismatch” |
| 6029 | 0x178D | NoInputs | ”NoInputs” |
| 6030 | 0x178E | InputMerkleTreeIndicesNotInOrder | ”Input merkle tree indices are not in ascending order.” |
| 6031 | 0x178F | OutputMerkleTreeIndicesNotInOrder | ”Output merkle tree indices are not in ascending order.” |
| 6032 | 0x1790 | OutputMerkleTreeNotUnique | ”OutputMerkleTreeNotUnique” |
| 6033 | 0x1791 | DataFieldUndefined | ”DataFieldUndefined” |
| 6034 | 0x1792 | ReadOnlyAddressAlreadyExists | ”ReadOnlyAddressAlreadyExists” |
| 6035 | 0x1793 | ReadOnlyAccountDoesNotExist | ”ReadOnlyAccountDoesNotExist” |
| 6036 | 0x1794 | HashChainInputsLenghtInconsistent | ”HashChainInputsLenghtInconsistent” |
| 6037 | 0x1795 | InvalidAddressTreeHeight | ”InvalidAddressTreeHeight” |
| 6038 | 0x1796 | InvalidStateTreeHeight | ”InvalidStateTreeHeight” |
| 6039 | 0x1797 | InvalidArgument | ”InvalidArgument” |
| 6040 | 0x1798 | InvalidAccount | ”InvalidAccount” |
| 6041 | 0x1799 | AddressMerkleTreeAccountDiscriminatorMismatch | ”AddressMerkleTreeAccountDiscriminatorMismatch” |
| 6042 | 0x179A | StateMerkleTreeAccountDiscriminatorMismatch | ”StateMerkleTreeAccountDiscriminatorMismatch” |
| 6043 | 0x179B | ProofVerificationFailed | ”Proof verification failed.” How to debug this error |
| 6044 | 0x179C | InvalidAccountMode | ”Invalid account mode.” |
| 6045 | 0x179D | InvalidInstructionDataDiscriminator | ”InvalidInstructionDataDiscriminator” |
| 6046 | 0x179E | NewAddressAssignedIndexOutOfBounds | ”NewAddressAssignedIndexOutOfBounds” |
| 6047 | 0x179F | AddressIsNone | ”AddressIsNone” |
| 6048 | 0x17A0 | AddressDoesNotMatch | ”AddressDoesNotMatch” |
| 6049 | 0x17A1 | CpiContextAlreadySet | ”CpiContextAlreadySet” |
| 6050 | 0x17A2 | InvalidTreeHeight | ”InvalidTreeHeight” |
| 6051 | 0x17A3 | TooManyOutputAccounts | ”TooManyOutputAccounts” |
| 6052 | 0x17A4 | BorrowingDataFailed | ”Borrowing data failed” |
| 6053 | 0x17A5 | DuplicateAccountInInputsAndReadOnly | ”DuplicateAccountInInputsAndReadOnly” |
7001 - 7009 / HasherError Variants
| Code | Hex | Error | Message |
|---|---|---|---|
| 7001 | 0x1B59 | IntegerOverflow | ”Integer overflow, value too large” |
| 7003 | 0x1B5B | PoseidonSyscall(PoseidonSyscallError) | ”Poseidon syscall error: “ |
| 7005 | 0x1B5D | InvalidInputLength(usize, usize) | ”Allowed input length provided “ |
| 7006 | 0x1B5E | InvalidNumFields | ”Invalid number of fields” |
| 7007 | 0x1B5F | EmptyInput | ”Empty input” |
| 7008 | 0x1B60 | BorshError | ”Borsh serialization failed.” |
| 7009 | 0x1B61 | OptionHashToFieldSizeZero | ”Option hash to field size returned [0u8;32], a collision with None for an Option type.” |
10001 - 10014 / ConcurrentMerkleTreeError Variants
| Code | Hex | Error | Message |
|---|---|---|---|
| 10001 | 0x2711 | IntegerOverflow | ”Integer overflow” |
| 10002 | 0x2712 | HeightZero | ”Invalid height, it has to be greater than 0” |
| 10003 | 0x2713 | InvalidHeight(usize) | ”Invalud height, expected “ |
| 10004 | 0x2714 | ChangelogZero | ”Invalid changelog size, it has to be greater than 0. Changelog is used for storing Merkle paths during appends.” |
| 10005 | 0x2715 | RootsZero | ”Invalid number of roots, it has to be greater than 0” |
| 10006 | 0x2716 | CanopyGeThanHeight | ”Canopy depth has to be lower than height” |
| 10007 | 0x2717 | TreeIsFull | ”Merkle tree is full, cannot append more leaves.” |
| 10008 | 0x2718 | BatchGreaterThanChangelog(usize, usize) | ”Number of leaves () exceeds the changelog capacity ().“ |
| 10009 | 0x2719 | InvalidProofLength(usize, usize) | ”Invalid proof length, expected , got .“ |
| 10010 | 0x271A | InvalidProof([u8; 32], [u8; 32]) | ”Invalid Merkle proof, expected root: {0:?}, the provided proof produces root: {1:?}” |
| 10011 | 0x271B | CannotUpdateLeaf | ”Attempting to update the leaf which was updated by an another newest change.” |
| 10012 | 0x271C | CannotUpdateEmpty | ”Cannot update the empty leaf” |
| 10013 | 0x271D | EmptyLeaves | ”The batch of leaves is empty” |
| 10014 | 0x271E | BufferSize(usize, usize) | ”Invalid buffer size, expected , got “ |
11001 - 11009 / IndexedMerkleTreeError Variants
| Code | Hex | Error | Message |
|---|---|---|---|
| 11001 | 0x2AF9 | IntegerOverflow | ”Integer overflow” |
| 11002 | 0x2AFA | IndexHigherThanMax | ”Invalid index, it exceeds the number of elements.” |
| 11003 | 0x2AFB | LowElementNotFound | ”Could not find the low element.” |
| 11004 | 0x2AFC | LowElementGreaterOrEqualToNewElement | ”Low element is greater or equal to the provided new element.” |
| 11005 | 0x2AFD | NewElementGreaterOrEqualToNextElement | ”The provided new element is greater or equal to the next element.” |
| 11006 | 0x2AFE | ElementAlreadyExists | ”The element already exists, but was expected to be absent.” |
| 11007 | 0x2AFF | ElementDoesNotExist | ”The element does not exist, but was expected to be present.” |
| 11008 | 0x2B00 | ChangelogBufferSize(usize, usize) | ”Invalid changelog buffer size, expected , got “ |
| 11009 | 0x2B01 | ArrayFull | ”Indexed array is full, cannot append more elements” |
12006 - 12019 / AccountError Variants
| Code | Hex | Error | Message |
|---|---|---|---|
| 12006 | 0x2EE6 | InvalidDiscriminator | ”Invalid Discriminator.” |
| 12007 | 0x2EE7 | AccountOwnedByWrongProgram | ”Account owned by wrong program.” |
| 12008 | 0x2EE8 | AccountNotMutable | ”Account not mutable.” |
| 12009 | 0x2EE9 | BorrowAccountDataFailed | ”Borrow account data failed.” |
| 12010 | 0x2EEA | InvalidAccountSize | ”Invalid Account size.” |
| 12011 | 0x2EEB | AccountMutable | ”Account is mutable.” |
| 12012 | 0x2EEC | AlreadyInitialized | ”Account is already initialized.” |
| 12013 | 0x2EED | InvalidAccountBalance | ”Invalid account balance.” |
| 12014 | 0x2EEE | FailedBorrowRentSysvar | ”Failed to borrow rent sysvar.” |
| 12015 | 0x2EEF | InvalidSigner | ”Invalid Signer” |
| 12016 | 0x2EF0 | InvalidSeeds | ”Invalid Seeds” |
| 12017 | 0x2EF1 | InvalidProgramId | ”Invalid Program Id” |
| 12018 | 0x2EF2 | ProgramNotExecutable | ”Program not executable.” |
| 12019 | 0x2EF3 | AccountNotZeroed | ”Account not zeroed.” |
14001 - 14009 / MerkleTreeMetadataError Variants
| Code | Hex | Error | Message |
|---|---|---|---|
| 14001 | 0x36B1 | MerkleTreeAndQueueNotAssociated | ”Merkle tree and queue are not associated.” |
| 14002 | 0x36B2 | RolloverNotConfigured | ”Rollover not configured.” |
| 14003 | 0x36B3 | MerkleTreeAlreadyRolledOver | ”Merkle tree already rolled over.” |
| 14004 | 0x36B4 | InvalidQueueType | ”Invalid queue type.” |
| 14005 | 0x36B5 | InsufficientRolloverFee | ”Insufficient rollover fee.” |
| 14006 | 0x36B6 | NotReadyForRollover | ”Merkle tree not ready for rollover.” |
| 14007 | 0x36B7 | InvalidTreeType | ”Invalid tree type.” |
| 14008 | 0x36B8 | InvalidRolloverThreshold | ”Invalid Rollover Threshold.” |
| 14009 | 0x36B9 | InvalidHeight | ”Invalid Height.” |
14017 - 14034 / LightSdkTypesError Variants
| Code | Hex | Error | Message |
|---|---|---|---|
| 14017 | 0x36C1 | FewerAccountsThanSystemAccounts | ”Fewer accounts than system accounts” |
| 14021 | 0x36C5 | InitAddressIsNone | ”Address is none during initialization” |
| 14022 | 0x36C6 | InitWithAddressIsNone | ”Address is none during initialization with address” |
| 14023 | 0x36C7 | InitWithAddressOutputIsNone | ”Output is none during initialization with address” |
| 14024 | 0x36C8 | MetaMutAddressIsNone | ”Address is none during meta mutation” |
| 14025 | 0x36C9 | MetaMutInputIsNone | ”Input is none during meta mutation” |
| 14026 | 0x36CA | MetaMutOutputLamportsIsNone | ”Output lamports is none during meta mutation” |
| 14027 | 0x36CB | MetaMutOutputIsNone | ”Output is none during meta mutation” |
| 14028 | 0x36CC | MetaCloseAddressIsNone | ”Address is none during meta close” |
| 14029 | 0x36CD | MetaCloseInputIsNone | ”Input is none during meta close” |
| 14031 | 0x36CF | CpiAccountsIndexOutOfBounds(usize) | ”CPI accounts index out of bounds: “ |
| 14032 | 0x36D0 | InvalidCpiContextAccount | ”Invalid CPI context account” |
| 14033 | 0x36D1 | InvalidSolPoolPdaAccount | ”Invalid sol pool pda account” |
| 14034 | 0x36D2 | InvalidCpiAccountsOffset | ”CpiAccounts accounts slice starts with an invalid account. It should start with LightSystemProgram SySTEM1eSU2p4BGQfQpimFEWWSC1XDFeun3Nqzz3rT7.” |
14301 - 14312 / BatchedMerkleTreeError Variants
| Code | Hex | Error | Message |
|---|---|---|---|
| 14301 | 0x37DD | BatchNotReady | ”Batch is not ready to be inserted” |
| 14302 | 0x37DE | BatchAlreadyInserted | ”Batch is already inserted” |
| 14303 | 0x37DF | BatchInsertFailed | ”Batch insert failed” |
| 14304 | 0x37E0 | LeafIndexNotInBatch | ”Leaf index not in batch.” |
| 14305 | 0x37E1 | InvalidNetworkFee | ”Invalid network fee.” |
| 14306 | 0x37E2 | BatchSizeNotDivisibleByZkpBatchSize | ”Batch size not divisible by ZKP batch size.” |
| 14307 | 0x37E3 | InclusionProofByIndexFailed | ”Inclusion proof by index failed.” |
| 14308 | 0x37E4 | InvalidBatchIndex | ”Invalid batch index” |
| 14309 | 0x37E5 | InvalidIndex | ”Invalid index” |
| 14310 | 0x37E6 | TreeIsFull | ”Batched Merkle tree is full.” |
| 14311 | 0x37E7 | NonInclusionCheckFailed | ”Value already exists in bloom filter.” |
| 14312 | 0x37E8 | BloomFilterNotZeroed | ”Bloom filter must be zeroed prior to reusing a batch.” |
15001 - 15017 / ZeroCopyError Variants
| Code | Hex | Error | Message |
|---|---|---|---|
| 15001 | 0x3A99 | Full | ”The vector is full, cannot push any new elements” |
| 15002 | 0x3A9A | ArraySize(usize, usize) | ”Requested array of size , but the vector has elements” |
| 15003 | 0x3A9B | IterFromOutOfBounds | ”The requested start index is out of bounds” |
| 15004 | 0x3A9C | InsufficientMemoryAllocated(usize, usize) | ”Memory allocated , Memory required “ |
| 15006 | 0x3A9E | UnalignedPointer | ”Unaligned pointer” |
| 15007 | 0x3A9F | MemoryNotZeroed | ”Memory not zeroed” |
| 15008 | 0x3AA0 | InvalidConversion | ”Invalid conversion” |
| 15009 | 0x3AA1 | InvalidData(Infallible) | ”Invalid data” |
| 15010 | 0x3AA2 | Size | ”Invalid size” |
| 15011 | 0x3AA3 | InvalidOptionByte(u8) | ”Invalid option byte must be 0 (None) or 1 (Some)“ |
| 15012 | 0x3AA4 | InvalidCapacity | ”Invalid capacity. Capacity must be greater than 0” |
| 15013 | 0x3AA5 | LengthGreaterThanCapacity | ”Length is greater than capacity” |
| 15014 | 0x3AA6 | CurrentIndexGreaterThanLength | ”Current index is greater than length” |
| 15015 | 0x3AA7 | InvalidEnumValue | ”Invalid enum value” |
| 15016 | 0x3AA8 | InsufficientCapacity | ”Insufficient capacity for operation” |
| 15017 | 0x3AA9 | PlatformSizeOverflow | ”Value too large for platform usize” |
16001 - 16034 / LightSdkError Variants
| Code | Hex | Error | Message |
|---|---|---|---|
| 16001 | 0x3E81 | ConstraintViolation | ”Constraint violation” |
| 16002 | 0x3E82 | InvalidLightSystemProgram | ”Invalid light-system-program ID” |
| 16003 | 0x3E83 | ExpectedAccounts | ”Expected accounts in the instruction” |
| 16004 | 0x3E84 | ExpectedAddressTreeInfo | ”Expected address Merkle context to be provided” |
| 16005 | 0x3E85 | ExpectedAddressRootIndex | ”Expected address root index to be provided” |
| 16006 | 0x3E86 | ExpectedData | ”Accounts with a specified input are expected to have data” |
| 16007 | 0x3E87 | ExpectedDiscriminator | ”Accounts with specified data are expected to have a discriminator” |
| 16008 | 0x3E88 | ExpectedHash | ”Accounts with specified data are expected to have a hash” |
| 16009 | 0x3E89 | ExpectedLightSystemAccount(String) | ”Expected the {0} light account to be provided” |
| 16010 | 0x3E8A | ExpectedMerkleContext | ”mut and close accounts are expected to have a Merkle context” |
| 16011 | 0x3E8B | ExpectedRootIndex | ”Expected root index to be provided” |
| 16012 | 0x3E8C | TransferFromNoInput | ”Cannot transfer lamports from an account without input” |
| 16013 | 0x3E8D | TransferFromNoLamports | ”Cannot transfer from an account without lamports” |
| 16014 | 0x3E8E | TransferFromInsufficientLamports | ”Account, from which a transfer was attempted, has insufficient amount of lamports” |
| 16015 | 0x3E8F | TransferIntegerOverflow | ”Integer overflow resulting from too large resulting amount” |
| 16016 | 0x3E90 | Borsh | ”Borsh error.” |
| 16017 | 0x3E91 | FewerAccountsThanSystemAccounts | ”Fewer accounts than number of system accounts.” |
| 16018 | 0x3E92 | InvalidCpiSignerAccount | ”InvalidCpiSignerAccount” |
| 16019 | 0x3E93 | MissingField(String) | ”Missing meta field: “ |
| 16020 | 0x3E94 | OutputStateTreeIndexIsNone | ”Output state tree index is none. Use an CompressedAccountMeta type with output tree index to initialize or update accounts.” |
| 16021 | 0x3E95 | InitAddressIsNone | ”Address is none during initialization” |
| 16022 | 0x3E96 | InitWithAddressIsNone | ”Address is none during initialization with address” |
| 16023 | 0x3E97 | InitWithAddressOutputIsNone | ”Output is none during initialization with address” |
| 16024 | 0x3E98 | MetaMutAddressIsNone | ”Address is none during meta mutation” |
| 16025 | 0x3E99 | MetaMutInputIsNone | ”Input is none during meta mutation” |
| 16026 | 0x3E9A | MetaMutOutputLamportsIsNone | ”Output lamports is none during meta mutation” |
| 16027 | 0x3E9B | MetaMutOutputIsNone | ”Output is none during meta mutation” |
| 16028 | 0x3E9C | MetaCloseAddressIsNone | ”Address is none during meta close” |
| 16029 | 0x3E9D | MetaCloseInputIsNone | ”Input is none during meta close” |
| 16031 | 0x3E9F | CpiAccountsIndexOutOfBounds(usize) | ”CPI accounts index out of bounds: “ |
| 16032 | 0x3EA0 | InvalidCpiContextAccount | ”Invalid CPI context account” |
| 16033 | 0x3EA1 | InvalidSolPoolPdaAccount | ”Invalid SolPool PDA account” |
| 16034 | 0x3EA2 | InvalidCpiAccountsOffset | ”CpigAccounts accounts slice starts with an invalid account. It should start with LightSystemProgram SySTEM1eSU2p4BGQfQpimFEWWSC1XDFeun3Nqzz3rT7.” |