0%
SupportWallet Services
How to Fix Bundler RPC Errors

How to Fix Bundler RPC Errors

Written by Author headshotLiang
Published on August 19, 20242 min read

This document provides a list of the JSON-RPC errors that you might encounter when using the Bundler API.

These are in addition to the standard JSON-RPC error codes returned by a bad method call.

32500: Rejected by EntryPoint’s simulateValidation

The userOp is rejected by entryPoint's simulateValidation, during account creation or validation.

The 32500 error code may be accompanied by an additional AAxx revert code provided by the EntryPoint to give additional guidance.

Data Fields:

  • reason: Optional string providing the main reason for the rejection.

  • inner_reason: Optional string providing additional details for the rejection.

  • revert_data: Optional bytes containing additional data related to the rejection.

32501: Rejected by paymaster's validatePaymasterUserOp

The userOp is rejected by paymaster's validatePaymasterUserOp.

Data Fields:

  • paymaster: Address of the paymaster.

  • reason: String providing the reason for the rejection.

32502: Opcode violation

The userOp does an Opcode violation or tries to access inaccessible storage.

Before submitting userOps, bundlers must make sure userOps don't grief the bundler by accessing banned opcodes when checking a signature.

Data Fields:

  • entity: Type of entity (e.g., paymaster, sender) accessing the storage.

  • opcode: Opcode that caused the violation.

  • Additional fields (when associated with StakeTooLow):

    • needs_stake: Entity that needs staking.

    • accessing_entity: Type of entity accessing the storage.

    • accessed_address: Address of the accessed storage.

    • accessed_entity: Optional type of accessed entity.

    • slot: Storage slot accessed.

    • minimum_stake: Minimum required stake.

    • minimum_unstake_delay: Minimum required unstake delay.

32503: Out of time range

Either the account or the paymaster returned a time-range, and it is already expired or will expire soon.

Data Fields:

  • valid_until: Timestamp indicating the valid until time.

  • valid_after: Timestamp indicating the valid after time.

  • paymaster: Optional address of the paymaster.

32504: Throttled or banned

The userOp was rejected because the paymaster or aggregator is throttled or banned.

Data Fields:

  • entity: Type of entity (e.g., paymaster, aggregator) that is throttled or banned.

  • address: Address of the entity.

32505: Stake or unstake-delay too low

The userOp was rejected because the paymaster's or signature aggregator's stake or unstake delay was too low.

Data Fields:

  • needs_stake: Entity that needs staking.

  • accessing_entity: Type of entity accessing the storage.

  • accessed_address: Address of the accessed storage.

  • accessed_entity: Optional type of accessed entity.

  • slot: Storage slot accessed.

  • minimum_stake: Minimum required stake.

  • minimum_unstake_delay: Minimum required unstake delay.

32506: Unsupported aggregator

The userOp was rejected because the wallet specified unsupported signature aggregator.

Data Fields:

  • aggregator: Address of the unsupported aggregator.

32507: Invalid signature

The userOp was rejected because it contains an invalid signature from the sender or the paymaster.

32521: Execution reverted

The userOp was reverted during the execution phase. Link to a more detailed post

Data Fields:

  • revert_data: Optional bytes containing additional data related to the revert.

32602: Invalid userOp

The userOp struct/fields sent to the bundler were invalid.

Data Fields:

  • current_max_priority_fee: Optional U256 containing the current maximum priority fee.

  • current_max_fee: Optional U256 containing the current maximum fee.

32603: Internal error

Internal JSON-RPC error. Please get in touch with our amazing support team.

Was this article helpful?
Share:
Banner background image

Not finding what you need?