Skip to content

docs(fees): add cdp paymaster rejection troubleshooting - #2120

Open
youssefea wants to merge 5 commits into
masterfrom
docs/devrel-859-cdp-paymaster-32002-usdc-transferwithaut
Open

youssefea wants to merge 5 commits into
masterfrom
docs/devrel-859-cdp-paymaster-32002-usdc-transferwithaut

Conversation

@youssefea

Copy link
Copy Markdown
Contributor

What changed? Why?

Adds a short "Troubleshooting CDP Paymaster Rejections" section to docs/specifications/transactions/network-fees.mdx. It explains what the CDP Paymaster -32002 error (request denied - no sponsorship and address can not pay with accepted token) means and how it differs from policy rejection messages such as target address not in allowed contracts and method not in allowed methods. It also points to the CDP Portal Logs tab and CDP's error reference and troubleshooting guide.

Closes knowledge gap gap-20260930-cdp-paymaster-32002-usdc-transferwithauthorizati: "A CDP Paymaster on Base returns JSON-RPC error -32002 for a USDC transferWithAuthorization call although another call from the same sender was sponsored moments earlier. What paymaster policy/configuration issue causes this, and where is it fixed?"

Gaps log: https://bdocs.cbhq.net/d/base-knowledge-gaps-log
Tracking: DEVREL-859

Notes to reviewers

Primary sources:

This deliberately does not say that the -32002 error on transferWithAuthorization is caused by an allowlist gap. CDP's docs describe -32002 as "no sponsorship and cannot pay with an accepted token," and they list the allowlist and method rejections as separate messages. Before merge, the CDP Paymaster / Base Account SDK owners should please confirm:

  • that a -32002 response can come from a gas policy that did not match the call (for example, a method that is not allowlisted), and whether the response text identifies which policy rule failed
  • that the guidance to check the exact message and the Portal Logs tab is the right way to diagnose this

This replaces the -32002 paragraph in #2090 (network-fees.mdx) for this gap only. The section is reworded to match CDP's current error reference.

How has it been tested?

  • node scripts/lint-mdx.js --files-from=<changed files>: 0 errors, 0 warnings
  • node scripts/validate-docs-structure.js: reports 2 existing redirect errors (/upgrades/denim/eip-8130) that also fail on unmodified master. This change does not introduce them.
  • All three external CDP links return HTTP 200 (curl -sIL)

Screenshots

N/A (text-only change)

Generated with Toshi

@mintlify

mintlify Bot commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated
base 🟢 Ready View Preview Oct 19, 2026, 8:42 PM

💡 Tip: Enable Automations to automatically generate PRs for you.

@cb-heimdall

Copy link
Copy Markdown
Collaborator

🟡 Heimdall Review Status

Requirement Status More Info
Reviews 🟡 0/1
Denominator calculation
Show calculation
1 if user is bot 0
1 if user is external 0
2 if repo is sensitive 0
From .codeflow.yml 1
Additional review requirements
Show calculation
Max 0
0
From CODEOWNERS 0
Global minimum 0
Max 1
1
1 if commit is unverified 0
Sum 1

@linear

linear Bot commented Oct 14, 2026

Copy link
Copy Markdown

DEVREL-859

@youssefea youssefea added the BKB Base Knowledge Base gap fix label Oct 19, 2026
@soheimam
soheimam marked this pull request as draft October 19, 2026 20:12
@soheimam
soheimam marked this pull request as ready for review October 19, 2026 20:12
@github-actions

Copy link
Copy Markdown
Contributor

Docs review

Risk: Low (one AI review) · risk: low · shadow mode, not enforced

  • small change with no risk signals

Verdict: Fits, with changes · reviewed a716a6e with gpt-6-luna

The addition addresses gas-sponsorship troubleshooting and fits the Transactions page’s scope. Clarify that the -32002 error reports no sponsorship, without implying that a policy rule caused it; the material provided distinguishes that error from specific policy rejection messages.

Suggestions

  1. Separate the error outcome from its cause (accuracy, docs/specifications/transactions/network-fees.mdx L97) — suggestion posted inline
    The error reports that no sponsorship was applied and the address cannot pay with an accepted token, but the provided material does not establish why sponsorship was absent. State the reported outcome and direct readers to the logs for diagnosis, rather than attributing the cause to the gas policy.
    Evidence: The PR’s cited error-reference description distinguishes “no sponsorship and cannot pay with an accepted token” from separate policy rejection messages such as allowlist failures.
What the reviewer checked
Page Placement Index section Neighbors read
docs/specifications/transactions/network-fees.mdx Live in navigation not in llms-full.txt 0

Advisory review from the Docs PR review workflow (run). It does not approve, block, or edit this PR. Add the skip-ai-review label to turn it off for this PR.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested edits from the docs review. Each one is optional; apply it with "Commit suggestion" if you agree.


If you sponsor gas with CDP Paymaster and a userOperation is rejected, read the exact error code and message before you change your configuration. Policy rules such as allowed contracts, allowed methods, and spend limits can apply differently to each userOperation, so an earlier sponsored operation from the same sender does not mean a later one will qualify.

- **`-32002` with `request denied - no sponsorship and address can not pay with accepted token`**: Your gas policy did not sponsor the userOperation, and the sender cannot pay gas with an accepted ERC-20 token. The error `data` lists the `acceptedTokens`. If the sender should pay in a token, check that it has approved the Paymaster for enough of that token, as described in [ERC-20 gas payments](https://docs.cdp.coinbase.com/paymaster/guides/erc20-gas-payments). If the operation should be sponsored, find out why your policy did not sponsor it.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Separate the error outcome from its cause

The error reports that no sponsorship was applied and the address cannot pay with an accepted token, but the provided material does not establish why sponsorship was absent. State the reported outcome and direct readers to the logs for diagnosis, rather than attributing the cause to the gas policy.

Suggested change
- **`-32002` with `request denied - no sponsorship and address can not pay with accepted token`**: Your gas policy did not sponsor the userOperation, and the sender cannot pay gas with an accepted ERC-20 token. The error `data` lists the `acceptedTokens`. If the sender should pay in a token, check that it has approved the Paymaster for enough of that token, as described in [ERC-20 gas payments](https://docs.cdp.coinbase.com/paymaster/guides/erc20-gas-payments). If the operation should be sponsored, find out why your policy did not sponsor it.
- **`-32002` with `request denied - no sponsorship and address can not pay with accepted token`**: No sponsorship was applied, and the sender cannot pay gas with an accepted ERC-20 token. The error `data` lists the `acceptedTokens`. If the sender should pay in a token, check that it has approved the Paymaster for enough of that token, as described in [ERC-20 gas payments](https://docs.cdp.coinbase.com/paymaster/guides/erc20-gas-payments). If you expected sponsorship, use the CDP Portal Logs to identify why the request was not sponsored.

This branch was successfully deployed

1 active deployment
staging - docs — a716a6e1 Deployed Oct 19, 2026 by mintlify[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

BKB Base Knowledge Base gap fix risk: low small changes, easy to merge

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants