Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

Bundler Errors

This page documents common errors you may encounter when using the bundler, including both bundler-specific errors and EntryPoint errors.

Bundler Error Codes (EIP-7769)

The bundler implements the EIP-7769 specification which standardizes ERC-4337 bundler error codes.

Error CodeDescription
-32602Invalid UserOperation struct/fields
-32500Rejected by EntryPoint's simulateValidation
-32501Rejected by paymaster's validatePaymasterUserOp
-32502Violation of ERC-7562 opcode validation rules
-32503UserOperation out of time-range
-32504Paymaster throttled or banned by reputation rules
-32505Paymaster stake or unstake-delay too low
-32507Wallet signature check failed
-32508Paymaster balance insufficient for pending operations
-32521UserOperation execution reverted
-32603Internal error - bundler failure

EntryPoint Errors

These errors originate from the EntryPoint contract during UserOperation validation or execution.

Account Errors (AA1x)

AA10: sender already constructed

The account at the sender address already exists, but the UserOperation includes initialization code.

Solutions:
  • Remove the initCode (v0.6) or factory/factoryData (v0.8+) fields if the account is already deployed
  • Verify you're using the correct sender address

AA13: initCode failed or OOG

The initialization code failed to execute or ran out of gas.

Solutions:
  • Increase the verificationGasLimit
  • Verify your initCode or factoryData is correct
  • Check that the factory contract is deployed on this chain

AA14: initCode must return sender

The factory's initialization code did not return the expected sender address.

Solutions:
  • Verify the sender address matches what your factory will deploy
  • Check your factory contract implementation

AA15: initCode must create sender

The initialization code executed but didn't create a contract at the sender address.

Solutions:
  • Verify the factory contract deploys to the expected address
  • Check for issues in your account deployment logic

Account Validation Errors (AA2x)

AA20: account not deployed

The sender account does not exist and no initialization code was provided.

Solutions:
  • Include initCode (v0.6) or factory/factoryData (v0.8+) to deploy the account
  • Verify the sender address is correct

AA21: didn't pay prefund

The account doesn't have enough native tokens to cover gas costs (when not using a paymaster).

Solutions:
  • Fund the sender address with native tokens
  • Use a paymaster to sponsor the transaction

AA22: expired or not due

The UserOperation's validity time window has passed or hasn't started yet.

Solutions:
  • Check the account's validation time constraints
  • Submit the operation within the valid time window

AA23: reverted

The account's validation function reverted.

Solutions:
  • Check your account contract's validateUserOp implementation
  • Verify the signature is valid
  • Ensure the account has proper permissions

AA24: signature error

The signature verification failed.

Solutions:
  • Verify the signature is correctly formatted
  • Ensure you're signing the correct UserOperation hash
  • Check the signer has permission on the account

AA25: invalid account nonce

The nonce is invalid (already used or incorrect key).

Solutions:
  • Get the current nonce from the EntryPoint contract
  • Ensure you're using the correct nonce key for parallel operations

Paymaster Errors (AA3x)

AA30: paymaster not deployed

The paymaster contract specified in the UserOperation is not deployed.

Solutions:
  • Verify the paymaster address is correct
  • Check that the paymaster is deployed on this chain

AA31: paymaster deposit too low

The paymaster doesn't have enough funds deposited in the EntryPoint.

Solutions:
  • Contact your paymaster provider
  • If self-hosted, deposit more funds via the paymaster's deposit() function

AA32: paymaster expired or not due

The paymaster signature has expired or isn't valid yet.

Solutions:
  • Request fresh paymaster data
  • Check the paymaster's time validity window

AA33: reverted

The paymaster's validation function reverted.

Solutions:
  • Contact your paymaster provider
  • Verify the UserOperation meets the paymaster's sponsorship criteria

AA34: signature error

The paymaster's signature verification failed.

Solutions:
  • Request fresh paymaster data
  • Verify the paymaster data hasn't been tampered with

Gas Errors (AA4x)

AA40: over verificationGasLimit

The verification phase used more gas than allocated.

Solutions:
  • Increase verificationGasLimit
  • Re-estimate gas using eth_estimateUserOperationGas

AA41: too little verificationGas

The verificationGasLimit is set too low for the operation.

Solutions:
  • Increase verificationGasLimit
  • Use eth_estimateUserOperationGas to get accurate estimates

Post-Operation Errors (AA5x)

AA50: postOp reverted

The paymaster's postOp function reverted.

Solutions:
  • Contact your paymaster provider
  • Increase paymasterPostOpGasLimit if using v0.8+

AA51: prefund below actualGasCost

The actual gas cost exceeded what was prefunded.

Solutions:
  • Increase gas limits
  • Ensure sufficient funds or paymaster coverage

Internal Errors (AA9x)

AA90: invalid beneficiary

The bundler specified an invalid beneficiary address.

Solutions:
  • This is a bundler configuration error; contact support

AA91: failed send to beneficiary

Failed to send funds to the bundler's beneficiary address.

Solutions:
  • This is typically a bundler infrastructure issue; contact support

AA92: internal call only

An external call was made to an internal EntryPoint function.

Solutions:
  • Ensure your code isn't directly calling internal EntryPoint methods

AA93: invalid paymasterAndData

The paymasterAndData field is malformed.

Solutions:
  • Verify the paymaster data format (first 20 bytes must be paymaster address)
  • Request fresh paymaster data

AA94: gas values overflow

Gas values caused an arithmetic overflow.

Solutions:
  • Reduce gas limit values
  • Use reasonable gas estimates

AA95: out of gas

The operation ran out of gas during execution.

Solutions:
  • Increase callGasLimit
  • Optimize your transaction's gas usage

AA96: invalid aggregator

An invalid signature aggregator was specified.

Solutions:
  • Verify the aggregator contract address
  • Ensure the aggregator is properly registered
Copyright © 2023-present Alamas Labs, Inc