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

# Python Errors

> Handle HTTP, WebSocket, reconnect, overflow, and orderbook-integrity failures in Python.

```python theme={null}
from polynode import ApiError, PolyNodeError, WsError
from polynode.orderbook_integrity import OrderbookIntegrityError

try:
    result = pn.v3.execute("GET /v3/stats")
except ApiError as error:
    print({
        "status": error.status,
        "code": error.code,
        "hint": error.hint,
        "request_id": error.request_id,
        "retry_after": error.retry_after,
        "rate_limit": error.rate_limit,
        "safe_method": error.safe_method,
        "safe_url": error.safe_url,
    })
    raise
except WsError as error:
    print(error.code, error.message)
    raise
except OrderbookIntegrityError as error:
    print(error.code, error.token, str(error))
    raise
except PolyNodeError as error:
    print(error.message)
    raise
```

Safe V3 reads retry transient failures and retryable statuses. State-changing calls are never retried automatically. After a mutation timeout, verify current state before submitting it again.

Also observe non-exception delivery signals:

* `pn.ws.on_replay(...)` for best-effort settlement replay;
* `sub.on_overflow(...)` for local event loss;
* `perps.on_reconnect(...)` for a possible perps gap;
* `perps.on_overflow(...)` for local perps loss;
* `integrity_error` for PN1 books that are gated until a fresh anchor succeeds.

Log request IDs and redacted safe URLs, never API keys, private keys, CLOB secrets, builder credentials, or signed payloads.
