Skip to main content

Entrypoint Error Codes

If a UserOperation is valid, the bundler return the calculated userOpHash for it. In case of failure, the bundler return an error result object, with code and message.

AAxx Error Codes​

Entrypoint Validation Error Codes: These error codes are returned by ERC-4337 Entrypoint and may occur when you send user operations.

  • AA1x error codes pertain to account creation.
  • AA2x error codes concern the sender of the user operation.
  • AA3x error codes are associated with paymasters.
  • AA4x error codes relate to general verification.
  • AA5x errors are related to actions taken after the user operation has been executed.
  • AA9x errors relate to the bundle transaction or malformed user operation fields.
CodeDescriptionExplanation
AA10Sender already constructedThe sender has already already created, so initCode does not need to be included in the user operation. EntryPoint v0.6 to v0.8.
AA13initCode failed or Out of Gas OOGCheck the amount of gas consumed, and then verify the initCode or the factory contract is correct.
AA14initCode must return senderThe initCode does not return the sender address. Check the initCode or the factory contract.
AA15initCode must create senderThe initCode in the user operation does not create an account. Check the initCode or the factory contract.
AA20Account Not DeployedIf this is the first transaction by this account make sure an initCode is included. Otherwise, check that the correct sender address is specified and is an ERC-4337 account.
AA21Didn't pay prefundThe sender lacks sufficient native tokens to cover the gas costs associated with the User Operation. If your intention was to utilize a Paymaster for sponsorship, it is crucial to verify that the paymasterAndData field of the user operation is correctly configured.
AA22Expired or not dueThe signature is not valid because it is outside of the specified time range.
AA23AA23 reverted OOGThe sender signature validation was rejected or ran out of gas. "OOG" is an abbreviation for Out-Of-Gas. The verificationGasLimit may be too low.
AA24Signature ErrorCheck the signature. It may be in an incompatible format.
AA25Invalid account nonceThe nonce is invalid. The user operation may be re-using an old nonce, or formatted the nonce incorrectly.
AA26Over verification gas limitThe account's validation used more gas than verificationGasLimit (EntryPoint v0.7+). Increase verificationGasLimit, and make sure the dummy signature used for gas estimation runs the same validation steps as the real signature.
AA27Outside valid block rangeThe account returned a block-number validity range that does not include the current block (EntryPoint v0.9).
AA30Paymaster not deployedThe paymaster address specified by paymasterAndData contains no code. Check that the first characters of the paymasterAndData field are the paymaster address you intend to use. EntryPoint v0.6 to v0.8.
AA31Paymaster deposit too lowThe paymaster is out of funds. More gas tokens must be deposited into the EntryPoint for the paymaster. This is usually done by calling the paymaster contract's deposit function. If you are using Candide Paymaster, let us know.
AA32Paymaster expired or not duePaymaster signatures have a specific time range. If the user operation was executed after this time range, the paymaster's signature becomes invalid
AA33AA33 revertedThe paymaster validation was rejected or ran out of gas. "OOG" = Out-Of-Gas. First check the paymaster's signature in paymasterAndData. If the signature is correct, the paymaster's gas limit may be too low: paymasterVerificationGasLimit on EntryPoint v0.7+, verificationGasLimit on v0.6.
AA34Signature ErrorThe paymaster's signature is invalid. Check the format of the signature in paymasterAndData.
AA35Malformed paymaster dataThe paymaster's validatePaymasterUserOp returned data in an unexpected format (EntryPoint v0.9).
AA36Over paymaster verification gas limitThe paymaster's validation used more gas than paymasterVerificationGasLimit (EntryPoint v0.7+; on v0.9 the message reads over pmVerificationGasLimit). Increase paymasterVerificationGasLimit.
AA37Paymaster invalid block rangeThe paymaster returned a block-number validity range that does not include the current block (EntryPoint v0.9). Request fresh paymaster data.
AA40Over verification gas limitThe verification gas limit was exceeded. Check the verificationGasLimit in your user operation. EntryPoint v0.6 only: v0.7+ returns AA26 or AA36.
AA41Too little verification gasVerifying the user operation took too much gas and did not complete. You may need to increase verificationGasLimit. EntryPoint v0.6 only.
AA50PostOp revertedAfter the user operation was completed, the execution of additional logic by the EntryPoint reverted. EntryPoint v0.6 only.
AA51prefund below actualGasCostThe actual cost of the user operation is higher than the total amount of gas approved. The prefund is the amount that the EntryPoint is allowed to execute the user operation. After the user operation is executed, the remainder of the prefund is credited back to the sender. EntryPoint v0.6 only.
AA93Invalid paymasterAndDatapaymasterAndData is too short to hold the paymaster address (and, on v0.7+, its gas limits). Check the paymaster fields. EntryPoint v0.6 to v0.8; v0.9 reverts with InvalidPaymasterData instead.
AA94Gas values overflowA gas or fee field is larger than the EntryPoint accepts (uint120). Check the units and encoding of the gas fields.
AA95Out of gasThe bundle transaction ran out of gas while executing the user operation. On v0.7+ this is caused by the bundle's gas limit; on v0.6 it can also be caused by a paymaster. Contact us if it persists.
AA98Invalid paymasterThe paymaster address in paymasterAndData is the zero address. EntryPoint v0.8; v0.9 reverts with InvalidPaymaster instead.
AA99initCode too smallinitCode is shorter than a factory address (EntryPoint v0.8+). Leave factory empty for deployed accounts, or set it to 0x7702 for EIP-7702 accounts.