0%
SupportWallet Services
How to Fix Bundler RPC Errors

How to Fix Bundler RPC Errors

Written by
Liang
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.

The userOp is rejected by paymaster's validatePaymasterUserOp.

Data Fields:

  • paymaster: Address of the paymaster.

  • reason: String providing the reason for the rejection.

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.

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.

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.

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.

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

Data Fields:

  • aggregator: Address of the unsupported aggregator.

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

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.

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.

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?