Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 5 additions & 4 deletions docs/troubleshooting/commonerrors.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,11 @@ Ensure that you are using the bundler, paymaster, and RPC URL of the same blockc

| Error | Description |
| -------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| AA21 didnt pay prefund | Throws if your smart wallet does not have funds to send transaction. Send some native tokens in your smart wallet to be able to resolve the error. |
| AA21 didn't pay prefund | Throws if your smart wallet does not have funds to send transaction. Send some native tokens in your smart wallet to be able to resolve the error. |
| AA23 reverted (or OOG) | Make sure the signature verification logic of the smart account is implemented correctly. Ensure you are using the same signer, you created the account with. If the error persists, try simulating `validateUserOp` method on entrypoint contract with the user operation on [tenderly](https://tenderly.co/). Also ensure, if sender has sufficient native tokens to cover the User Operation's gas costs. If you are using paymaster to sponsor the transactions, ensure that the paymasterAndData field of the user operation is correctly set to enable proper handling of gas fees. |
| AA24 Signature error | Throws if the signature field of userOp is inaccurate. This could occur if any userOp field is altered after the userOp has been signed. Ensure that you are using the correct chain Id, entry point address and corresponding bundler URL. |
| AA10 sender already constructed | Throws if your smart wallet is already created but you are still sending `initcode` in userOp. |
| AA13 initCode failed or OOG | Throws if userOp doesnt have enough `verificationGasLimit` to create smart account. you need to increase `verificationGasLimit` to be able to send transaction. |
| AA13 initCode failed or OOG | Throws if userOp doesn't have enough `verificationGasLimit` to create smart account. you need to increase `verificationGasLimit` to be able to send transaction. |
| AA14 initCode must return sender | Throws if the factory contract that you are using to deploy smart account does not return smart account address. Or `sender` field in userOp does not have same address as factory contract is creating for you. |
| AA93 invalid paymasterAndData | Throws if `paymasterAndData` created by signing service is not valid. |
| AA95 out of gas | Throws if `callGasLimit` or `verificationGasLimit` is not correct for executing callData sent in userOp. Make sure `callGasLimit` and `verificationGasLimit` are not too high and use correct estimated values for preparing the userOp. |
Expand All @@ -39,12 +39,13 @@ Ensure that you are using the bundler, paymaster, and RPC URL of the same blockc
| Address cannot be zero | Throws when trying to update to a zero address as implementation. |
| invalid tokenGasPriceFactor | Throws when token Gas Price factor provided is 0. |
| Invalid signatures length | Throws when the length of the signature provided in the Forward flow is less than 65. |
| Could not get network config values | Throws when we cant find the provided network in the network config. |
| Exceeded maximum duration (30 sec) waiting to get receipt for userOpHash | This is a timeout error on bundler, If the error persists on a particular network, create a bundler instance by increasing the userOpReceiptMaxDurationIntervals as mentioned [here](/Account/methods#createbundler). And pass this bundler to the `createSmartAccountClient` function |
| Could not get network config values | Throws when we can't find the provided network in the network config. |
| Exceeded maximum duration (30 sec) waiting to get receipt for userOpHash | This is a timeout error on bundler, If the error persists on a particular network, create a bundler instance by increasing the userOpReceiptMaxDurationIntervals as mentioned [here](/Account/methods#createbundler). And pass this bundler to the `createSmartAccountClient` function |
| UserOperation reverted during execution phase | This error comes when the call data execution is failing, which is the call that the Entry Point makes to the Smart Account. A quick way to debug is to go on Tenderly and simulate the exact call data execution. To do that you can add the Smart Account address in the `Paste any address` box of Tenderly, then select the network which you are on. After that paste the `callData` from the userOp in the raw data input box and also edit the From address to be the Entry Point address. If the network you are on is not supported by Tenderly, one can use `eth_estimateGas` to capture the revert reason. |
| maxPriorityFeePerGas in userOp is lower than expected maxPriorityFeePerGas | This error indicates that the userOp sent to the bundler is a low paying userOp and won't be accepted in the bundler mempool. The way to fix this is to retry by building the userOp again. The value of maxPriorityFeePerGas should always be fetched from `biconomy_getGasFeeValues` or `eth_estimateUserOperationGas`. |
| maxFeePerGas in userOp is lower than expected maxFeePerGas | This error indicates that the userOp sent to the bundler is a low paying userOp and won't be accepted in the bundler mempool. The way to fix this is to retry by building the userOp again. The value of maxFeePerGas should always be fetched from `biconomy_getGasFeeValues` or `eth_estimateUserOperationGas`. |
| preVerificationGas in userOp is lower than expected preVerificationGas | This error indicates that the userOp sent to the bundler is a low paying userOp and won't be accepted in the bundler mempool. The way to fix this is to retry by building the userOp again. The value of preVerificationGas should always be fetched from `eth_estimateUserOperationGas`. |
| Error coming from Paymaster: Invalid FundingId | This error occurs when you haven't set up a gas tank on the Biconomy dashboard for your paymaster. To resolve this, visit the [Biconomy documentation on creating a gas tank](https://docs.biconomy.io/dashboard/paymaster#create-gas-tank) and follow the instructions to set up your gas tank. Ensure you've topped up your gas tank with sufficient funds to cover transaction costs. After setting up and funding your gas tank, retry your operation. |

---

Expand Down