Execution reverted
The UserOperation was able to make it onchain, but an error occurred in one of the smart contracts it interacted with, and thus the entire operation had to be reverted. This can be due to- Not enough gas to pay for execution
- Try increasing the
preVerificationGas
orcallGasLimit
padding
- Try increasing the
- An issue with the
callData
of your UserOperations- This is an issue with your dapp’s smart contract, which you will need to debug.
Issue regarding gas estimation
If you think the issue may be related to gas, simulate using the Entrypoint contract,0x5ff137d4b0fdcd49dca30c7cf57e578a026d2789
, and pasting in your UserOperation into the tuple
field.
For example, your UserOperation may look something like
simulateHandleOp
function and pass that UserOperation in the op
field (don’t forget to add array brackets around it, because technically it handles a “bundle” of UserOperations).
Expand for images and click to enlarge
Expand for images and click to enlarge

Execution reverted with data
Error may look something like thisExecution reverted for an unknown reason
Similar to above, except your contract is reverting without any error codes. Try reviewing your smart contract’s code, yourcallData
, and using Tenderly to debug. It may help to have your contract verified.
The example below shows you how to debug your own smart contract.
Insert any address
- Enter your smart contract’s address hereEnter raw input data
- Enter thecallData
of your contract’s function (right aftercallData = encodeFunctionData()
)
Expand for images and click to enlarge
Expand for images and click to enlarge

Invalid chain id
You might be using the mainnet RPC url instead of the testnet RPC url (or vis versa). Make sure you select the right network in the CDP portalExpand for images and click to enlarge
Expand for images and click to enlarge

Invalid UserOperation signature or paymaster signature
paymasterClient.getPaymasterData()
. If you need to adjust things like callData
, preVerificationGas
, or callGasLimit
, you will need to receive a new signature from our Paymaster. Also if you’re handling multiple UserOperation, make sure the paymaster signature matches the right UserOperation.