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.
Code | Description | Explanation |
---|---|---|
AA10 | Sender already constructed | The sender has already already created, so initCode does not need to be included in the user operation. |
AA13 | initCode failed or Out of Gas OOG | Check the amount of gas consumed, and then verify the initCode or the factory contract is correct. |
AA14 | initCode must return sender | The initCode does not return the sender address. Check the initCode or the factory contract. |
AA15 | initCode must create sender | The initCode in the user operation does not create an account. Check the initCode or the factory contract. |
AA20 | Account Not Deployed | If 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. |
AA21 | Didn't pay prefund | The 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. |
AA22 | Expired or not due | The signature is not valid because it is outside of the specified time range. |
AA23 | AA23 reverted OOG | The sender signature validation was rejected or ran out of gas. "OOG" is an abbreviation for Out-Of-Gas. The verificationGasLimit may be too low. |
AA24 | Signature Error | Check the signature. It may be in an incompatible format. |
AA25 | Invalid account nonce | The nonce is invalid. The user operation may be re-using an old nonce, or formatted the nonce incorrectly. |
AA30 | Paymaster not deployed | The 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. |
AA31 | Paymaster deposit too low | The 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. |
AA32 | Paymaster expired or not due | Paymaster signatures have a specific time range. If the user operation was executed after this time range, the paymaster's signature becomes invalid |
AA33 | AA33 reverted | The 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 verificationGasLimit may be too low. |
AA34 | Signature Error | The paymaster's signature is invalid. Check the format of the signature in paymasterAndData . |
AA40 | Over verification gas limit | The verification gas limit was exceeded. Check the verificationGasLimit in your user operation. |
AA41 | Too little verification gas | Verifying the user operation took too much gas and did not complete. You may need to increase verificationGasLimit . |
AA50 | PostOp reverted | After the user operation was completed, the execution of additional logic by the EntryPoint reverted. |
AA51 | prefund below actualGasCost | The 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. |