Polymarket errors / Place Orders
503 Service UnavailableWait for the exchange

post-only mode: only post-only orders and cancels are allowed

The exchange is in post-only mode. You can cancel orders and place orders with `postOnly: true`; non-post-only orders are rejected. The response includes `code: "post_only_mode"` and `retry_after_seconds`, and the same retry delay is also sent in the `Retry-After` HTTP header.

Only post-only orders and cancels are accepted. The response includes retry_after_seconds and a Retry-After header saying when to try again.

Retry? Wait for the exchange

The exchange is in a restricted mode. The same order will keep failing until the mode lifts; there is nothing to fix on your side.

Returned by

Handling it in code

The CLOB API returns errors as {"error": "..."}. It also rewrites status codes by message, so branch on the text: anything containing "not found" becomes 404 and anything containing "unauthorized" becomes 401.

r = session.post(url, json=payload, headers=headers)
if r.status_code >= 400:
    msg = r.json().get("error", "")
    if "post-only mode: only post-only orders and cancels are allowe" in msg:
        pause_trading()

Related errors

For errors Polymarket doesn't document, like "order manager not ready" or 403s from the edge, see the full error guide.

Message and status from Polymarket's error reference, synced 2026-10-04.