Skip to content
Docs

Reference

Errors

Program error codes and what to do about each.

The program answers with these codes. The app translates them into a sentence about the action at hand; this page lists the codes for clients that call the program directly.

CodeNameMeaningWhat to do
6000UnauthorizedThe signer may not take this actionSign with the issuer, verifier or admin the action needs
6001PausedWrit is pausedWait for governance to resume
6002VerifierInactiveThe verifier is inactive, or the credential's generation is staleVerify again with an active verifier
6003CredentialInvalidThe credential expired or was revokedRenew the credential
6004StaleRevisionThe expected epoch or generation moved; or a pass would end before the one it replacesRefresh and retry; renew passes with a later expiry
6005InvalidExpiryA time or expiry is out of rangeChoose an expiry within the rule's and credential's limits
6006InvalidCommitmentA commitment is zero or not a canonical BN254 scalarRecompute the commitments
6007UnsupportedPredicateA predicate or circuit version is not supportedUse 1 to 4 groups that each read an attribute, within the bounds
6008InvalidCircuitThe verifying key is incomplete, fixed, or has another digestFinish or check the key upload
6009InvalidProofThe Groth16 proof failedProve from the credential file of the current epoch
6010InvalidPassThe pass expired, is stale, or belongs to another wallet or rule setProve the rule set again
6011NotTransferringThe hook ran outside a Token-2022 transferTransfer through Token-2022
6012InvalidMintThe mint does not fit the binding profileUse a zero-supply mint with only Writ's immutable hook, owned by the issuer
6013InvalidAccountAn account, owner or layout is not what Writ expectsUse standard token accounts with an immutable owner
6014ArithmeticOverflowAn amount overflowedUse a smaller amount
6015UnsupportedMintExtensionThe mint has extensions besides TransferHookCreate a mint with only the TransferHook extension
6016PassFeeUnfundedThe rule set's pass funds cannot cover the pass feeThe rule set's issuer adds pass funds
6017PassFundsInsufficientA withdrawal is more than the rule set's pass fundsWithdraw at most the pass funds shown

A missing account surfaces as Anchor's own AccountNotInitialized (3012) for the account named in the logs, for example a receiving wallet's destination_rule_pass when it has never proved the rule set, or protocol before governance has set the pass fee.