> ## Documentation Index
> Fetch the complete documentation index at: https://docs.myproceeds.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Troubleshooting

> Resolve challenge, payment, and fulfillment failures.

When a paid request behaves unexpectedly, work through these checks in order. Most issues fall into one of four buckets.

## I get a `402` but never the resource

The challenge is being returned, but the retry isn't producing a `200`. Check:

* The client retried with a valid payment payload (signature, network, and amount must match the challenge).
* The transaction shows `Completed` in [Transactions](/dashboard/transactions).
* The events stream shows `Payment` followed by `Fulfillment` in [Events](/dashboard/events).

If you see a `Payment` event but no `Fulfillment`, the upstream call is failing — see the next section.

## Payment succeeded but the upstream call failed

The events stream shows `Payment` but not `Fulfillment`, and the transaction is `Failed`. Check, in order:

* Paywall **Target URL** is correct and reachable from Proceeds.
* Paywall **custom headers** and **query parameters** are valid.
* Service **auth method** matches what your upstream expects — see [Forward upstream auth](/guides/forward-upstream-auth).

Open the matching `Error` event for the underlying reason.

## The wrong route is being charged

Requests are matching the wrong paywall, or your origin is being called with the wrong path. Check:

* The paywall **slug** matches the URL the client called.
* The paywall **Target URL** points at the correct upstream path.
* The generated URL pattern: `/api/x402/pay/{serviceId}/{slug}`.

## MPP is not available

The Tempo / MPP path isn't returning a working URL. Check:

* Tempo is included in the paywall's supported networks.
* The paywall exposes an MPP endpoint at `/api/mpp/pay/{serviceId}/{slug}`.
* The client is using an MPP-aware flow such as `mppx`.

If MPP is missing for a paywall that should support it, re-edit the paywall and ensure Tempo is selected under **Networks**.

## Agent payments aren't going through

You're paying from an agent in Claude Code, Cursor, or Codex and the call fails. Check:

* The agent wallet is funded with USDC. For [Circle Agent Stack](/agents/circle-agent-stack), confirm you deposited into Gateway, not just the onchain wallet.
* You're using the right URL type for the tool: MPP (`/api/mpp/pay/...`) for [Tempo Wallet](/agents/tempo-wallet), x402 (`/api/x402/pay/...`) for [Circle Agent Stack](/agents/circle-agent-stack); [AgentCash](/agents/agentcash) handles either.
* The wallet tool's CLI, skill, or MCP server is installed in the IDE where your agent runs — see [Pay with an agent](/agents/overview).

## Still stuck?

<CardGroup cols={2}>
  <Card title="Production checklist" icon="circle-check" href="/guides/production-checklist">
    Confirm settings before moving a service to mainnet.
  </Card>

  <Card title="Concepts" icon="cube" href="/concepts">
    Refresh on services, paywalls, transactions, and events.
  </Card>
</CardGroup>
