Hosted x402 facilitator: exact-SVM compute-limit ceiling tightened into a ~20k–100k band (Aug 23–26), rejecting spec-shaped envelopes; reason diverges from OSS main
- Dominant language
- Python
- Stars
- 200
- Forks
- 191
- Avg merge
- 6h 16m
- Merged PRs (30d)
- 17
Description
**Component:** hosted x402 facilitator — `api.cdp.coinbase.com/platform/v2/x402`, exact-SVM (Solana mainnet, USDC).
Cross-post of x402-foundation/x402#3268. An x402 contributor has since verified against current `x402` `main` that the compute-limit half **does not reproduce there** (fix pending maintainer review), which points at the CDP-hosted deployment's config/revision — so raising it here on the CDP-managed side.
## What happened
Between **2026-08-23 and 2026-08-26**, the hosted facilitator began rejecting spec-shaped exact-SVM payments that previously settled. Two behaviors:
1. **Compute-limit ceiling tightened into a ~20k–100k band.** A 100,000-CU envelope that **settled on Aug 23** (Solana tx `274cKmt1…Fqu1J`) is now rejected with:
`invalid_exact_svm_payload_transaction_instructions_compute_limit_instruction`
~20,000 CU settles; ~100,000 CU is rejected. No client change across the window.
2. **No compute-limit instruction → SPL Token program rejected:**
`smart_wallet_program_not_allowed: TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA`
(This half *does* reproduce in OSS `main`; an x402 contributor has a focused fallback fix prepared, pending maintainer review — see #3268.)
## Why this looks like the hosted deployment, not `main`
- **Reason-string divergence:** OSS `main` returns `...compute_limit_instruction_too_high` when a configured ceiling is exceeded; the hosted facilitator returned `invalid_exact_svm_payload_transaction_instructions_compute_limit_instruction` for the same 100k-CU envelope. Different code path / revision.
- **Timeline:** identical envelope shape settled Aug 23, rejected by Aug 26 — a deployment window, not a client or spec change.
- The protocol doc (§2.2.1) references a 400k-CU maximum and (§2.3) permits stricter operator policy, but the ~20k–100k band is **not specified anywhere**, and the change was undocumented.
## Impact
Standard x402 clients that omit a compute-limit instruction, or default it high (e.g. 100k, well under the 400k reference), now **fail on the hosted Solana rail** — silently, for envelopes that worked days earlier.
## Ask
- Document / version the hosted facilitator's exact-SVM compute-limit policy, or realign the ceiling toward the §2.2.1 400k reference.
- Surface the `...compute_limit_instruction_too_high` reason for over-ceiling envelopes so clients can self-correct (the current `invalid_...` string is opaque).
## Evidence
Signed, on-chain-verifiable deterministic A/B (pre-change settlement; post-change 20k-settles vs 100k-rejects; identical behavior across two independent endpoints on the same facilitator) is linked in #3268 via Cairn's conformance reports. Happy to re-run against the current hosted revision if a fresh capture helps.
— anchor-x402 (resource server; hit this on its advertised Solana rail)
Contributor guide
Research direction
Start with the linked x402-foundation/x402#3268 thread and its conformance reports, then compare the hosted facilitator’s observed behavior with protocol sections §2.2.1 and §2.3. The issue asks for the hosted compute-limit policy to be documented or realigned and for over-limit errors to use a clearer reason; confirm the current hosted behavior before assessing whether either change is appropriate.
Written by the indexing model from the issue text.
Assessment
- Domain
- api, backend-api-design, payments
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100