# Errors and status codes

Handle Foxora API failures by HTTP status, structured error code, and x-request-id , while keeping credentials and prompt content out of logs.

<table><thead><tr><th scope="col">Status</th><th scope="col">Meaning</th><th scope="col">Client action</th></tr></thead><tbody><tr><td><code>400</code></td><td>Invalid request</td><td>Fix the payload; do not retry unchanged.</td></tr><tr><td><code>401</code></td><td>Authentication failed</td><td>Refresh or replace the account token.</td></tr><tr><td><code>403</code></td><td>Feature or plan denied</td><td>Verify entitlement and requested model.</td></tr><tr><td><code>404</code></td><td>Route or resource missing</td><td>Check the <code>/v1</code> path and identifier.</td></tr><tr><td><code>429</code></td><td>Request ceiling reached</td><td>Wait for reset guidance and reduce concurrency.</td></tr><tr><td><code>5xx</code></td><td>Service failure</td><td>Retry safe work with bounded backoff and jitter.</td></tr></tbody></table>




Unknown routes return `NOT_FOUND`; validation failures return `VALIDATION_ERROR`; unexpected failures return `INTERNAL_ERROR`. Upstream-specific messages may vary, so do not build control flow from prose.




**Expected result:** the client either corrects a permanent request error or performs a bounded retry while retaining the request identifier for support.

Source: https://www.foxora.ai/docs/ko/api/errors-and-status-codes
