MCP troubleshooting

Resolve connection, voucher, checkout, and payment errors.

Use MCP results and the customer's current connection state to diagnose a failure. Returned messages can be translated; avoid matching exact English message text in client logic.

Connection and authorization

SymptomWhat to check
401 or invalid_tokenThe access token may be missing, expired, revoked, or issued for another resource. Refresh the connection or repeat customer authorization when needed.
403 or insufficient_scopeCheck the granted scopes and discover tools again. New permissions require customer authorization.
A tool is missing from tools/listTools are filtered by granted scopes. Checkout tools also depend on the server's spending policy.
invalid_clientVerify the client ID, callback registration, and CIMD availability. For CIMD, the HTTPS JSON document must be reachable directly and contain a matching client_id.
invalid_scopeRequest supported scopes from the current server metadata rather than copying a scope list from another environment.
invalid_grant during exchange or refreshCheck the client, resource, callback, PKCE verifier, expiry, and current refresh token. If authorization cannot be recovered, reconnect the customer.
405 on the MCP URLThe endpoint accepts POST. A browser GET or legacy SSE connection is not supported by this transport.
404 on the connectorVerify the endpoint and environment. The production MCP endpoint is https://api.chowdeck.com/mcp.
429Stop immediate retries and back off. Respect any returned retry timing.

Addresses, menus, and carts

An address must belong to the connected customer. If a saved address is unavailable, list the customer's addresses again rather than guessing an ID. Resolve a new address before asking the customer to approve saving it.

Use current restaurant menus for item and modifier IDs. If an item becomes unavailable or the cart changes, fetch the latest menu and cart, ask for any needed selection, and prepare checkout again.

Vouchers

SymptomNext action
Discovery returns no offersCheck currency and any vendor filter. The customer may already have claimed the available offers; check get_voucher_balances.
A previously claimed code is absent from discoveryThis is expected. Discovery excludes vouchers already claimed by the customer.
A claim failsSlots, expiry, phone eligibility, active-balance limits, or failed-attempt limits may prevent claiming. Follow the returned result and do not keep retrying.
A security answer is requiredAsk the customer for the answer. Never infer or brute-force it.
A claim response is uncertainCheck get_voucher_balances before retrying.
A voucher cannot be appliedCheck the balance, expiry, currency, vendor restrictions, and checkout quote. A claim alone does not guarantee eligibility for every order.

Checkout and payment

Preparation and confirmation are separate steps. A successful preparation provides a quote and an expiring confirmation token; it does not place an order.

SymptomNext action
Payment option unavailableFetch eligible payment options for the currency and amount, then let the customer choose. Card checkout requires a returned card ID.
Insufficient wallet fundsPresent the returned shortfall and ask the customer to fund the wallet or choose an eligible saved card.
Spending limit reachedExplain the restriction. Do not bypass it by splitting or duplicating orders.
Quote changed or confirmation expiredPrepare checkout again, show the current quote, and obtain fresh approval.
Confirmation already usedCheck the known order's status. Replays are rejected; they do not reliably return the original success result.
Payment pendingUse get_checkout_status for the order and report the returned state. Avoid placing a replacement order automatically.
Confirmation times outPreserve the attempt and any known order ID. Reconcile the result before starting another checkout; a timeout is not proof that no order was created.
Service temporarily unavailableBack off and report the interruption. For a payment or confirmation attempt, establish the outcome before retrying an action that could create another order.

If an outcome remains unclear, retain the order reference and the time of the attempt for support. Exclude access tokens, refresh tokens, checkout credentials, security answers, and delivery PINs from diagnostic logs shared with others.


Did this page help you?