retry_after is present on 429s. On MCP the same failures arrive as readable
tool results (isError: true with text), never as opaque protocol errors.
The table
How to react
Transient — wait and retry
Transient — wait and retry
rate_limited · busy · archive_offline · agent_api_disabledHonor Retry-After (seconds) where present. These clear in seconds. A
well-behaved agent waits rather than failing the turn.pm_offline is a special case: the trader card and pnl-series degrade
gracefully rather than erroring. The card serves with
"polymarket": {"status": "pm_offline"} and carries the archive’s realized
P/L as a labeled fallback. Use it, say which voice you are quoting, and move
on.The paywall — relay, do not retry
The paywall — relay, do not retry
daily_limit · monthly_limitThe message is written to be relayed to your human. It names the
upgrade and links https://polytape.io/pricing, and it is plan-aware (Pro is
told about Max).Surface it and stop. retry_after on a daily cap points hours out and on a
monthly cap points weeks out.Plan walls — surface the upgrade
Plan walls — surface the upgrade
depth_gated · wallet_quotaNot outages. Retrying changes nothing — the answer will be identical until
the plan changes or the day rolls over.resets_at is an ISO 8601 UTC string (next midnight UTC) — the one timestamp
on this API that is not epoch seconds. There is no retry_after here.Treat depth_gated as an upgrade prompt, or as a not-found if you would
rather not interrupt.Your mistake — fix the input
Your mistake — fix the input
bad_cursor · bad_limit · invalid_wallet · unknown_event_type ·
not_found · unknown_trader · tape_not_foundDo not retry the same request. Fix the argument.These burn a call (the counter charges served work), so validate before
you fire — a typo’d condition_id costs a Basic user 1/50th of their day.Credential trouble
Credential trouble
missing_credentials · invalid_api_key · too_many_auth_failuresRevocation is instant, so a key that worked a minute ago can be dead now. Fix
the credential, then wait out the auth-failure window before retrying.Too broad
Too broad
query_timeoutAlmost always a mega-maker (a 100k+ market account) plus a wide n on
top-markets. Narrow n and retry — a small n is both cheaper and
likelier to return.What burns a call
Burns a call
Every successful GET or tool call. And application errors on real routes —
400, 403, 404, even 304.Free
All
429 rejections. MCP protocol handshakes: connect, tools/list,
prompts/list, fetching a prompt.