This guide covers common issues when sending sponsored userOperations with CDP Paymaster and how to debug them.Documentation Index
Fetch the complete documentation index at: https://docs.cloud.coinbase.com/llms.txt
Use this file to discover all available pages before exploring further.
Transaction Rejected by Policy
Symptom: Your userOperation is rejected before reaching the chain. Common causes:- Contract address not in your allowlist
- Function not allowlisted for the contract
- Per-user or global spend limits exceeded
- Sender address doesn’t have required attestation
- Verify the contract address is in your allowlist
- Confirm the specific function you’re calling is allowed
- Review your spend limits in the Configuration tab
Execution Reverted
Symptom: The userOperation made it onchain but the transaction reverted. This means the smart contract execution failed. Common causes:| Cause | Solution |
|---|---|
| Insufficient gas | Increase callGasLimit or preVerificationGas |
| Invalid callData | Verify your encoded function call is correct |
| Contract logic error | Debug your contract with Tenderly |
| Insufficient token balance | Ensure the account has required tokens |
Debugging with Tenderly
Tenderly is useful for simulating and debugging userOperations. To debug gas issues:- Go to Tenderly and select the Entrypoint contract:
0x5ff137d4b0fdcd49dca30c7cf57e578a026d2789 - Use the
simulateHandleOpfunction - Paste your userOperation in the
opfield (wrap it in array brackets[{...}])

- Enter your smart contract’s address
- Paste the
callDatafrom your userOperation - Run the simulation to see where it fails

Decoding Revert Data
If you see an error like:- Upload your contract’s ABI
- Paste the
datafield - The decoder will show the specific error and parameters
Invalid Chain ID
Symptom: Request rejected with chain ID mismatch error. Cause: You’re using a Paymaster URL for a different network than your transaction targets. Solution: In CDP Portal, check the network dropdown in the top right corner and ensure it matches your transaction’s chain:- Base Mainnet — Chain ID
8453 - Base Sepolia — Chain ID
84532

Invalid Signature
Symptom: Error message about account signature or paymaster signature check failing.getPaymasterData(), the signature becomes invalid.
Solution:
- Finalize all userOperation fields (
callData, gas limits, etc.) before requesting the Paymaster signature - Don’t modify the userOperation after receiving
paymasterAndData - If you need to change something, request a new Paymaster signature
Sponsorship Not Applied
Symptom: Transaction goes through but user paid gas instead of sponsorship. Common causes:- Wallet doesn’t support paymaster capabilities
paymasterServicecapability not passed correctly- Using an EOA instead of a smart account
- Verify you’re using a smart account (check with
eth_getCode— should return non-empty) - Confirm the wallet supports
paymasterServicecapability - Check that you’re passing the paymaster URL in the correct format for your SDK
Still Stuck?
If you’ve tried the above and are still having issues:- Check the Logs tab in CDP Portal for detailed request/response data
- Export your userOp logs for offline analysis
- Reach out in CDP Discord in the
#paymasterchannel — include your error message, userOperation details, and what you’ve tried