Bundler RPC Errors
Learn about the different Bundler error codes.
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
- Description: The 
userOpis rejected by entryPoint’ssimulateValidation, during account creation or validation. The-32500error code may be accompanied by an additionalAAxxrevert 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
- Description: The 
userOpis rejected by paymaster’svalidatePaymasterUserOp. 
Data Fields:
paymaster: Address of the paymaster.reason: String providing the reason for the rejection.
-32502: Opcode violation
- Description: The 
userOpdoes an Opcode violation or tries to access inaccessible storage. Before submittinguserOps, bundlers must make sureuserOpsdon’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
- Description: 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
- Description: The 
userOpwas 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
- Description: The 
userOpwas 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
- Description: The 
userOpwas rejected because the wallet specified unsupported signature aggregator. 
Data Fields:
aggregator: Address of the unsupported aggregator.
-32507: Invalid signature
- Description: The 
userOpwas rejected because it contains an invalid signature from the sender or the paymaster. 
Data Fields:
- No additional data fields.
 
-32521: Execution reverted
- Description: The 
userOpwas reverted during the execution phase. 
Data Fields:
revert_data: Optional bytes containing additional data related to the revert.
-32602: Invalid userOp
- Description: The 
userOpstruct/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
Description: Internal JSON-RPC error.
Data Fields:
- No additional data fields.