> Markdown version of https://authpi.com/docs/reference/errors/ — fetch the complete AuthPI docs index at https://authpi.com/llms.txt to discover all available pages.

# Error codes

Learn more about error codes returned by our APIs and how to handle them.

Almost all errors returned by our APIs includes an error code in the response body (`error`) and/or in the HTTP status code. These codes are used to identify the type of error that occurred and help you find the appropriate solution.

Below is a list of error codes you may encounter when using our APIs, along with their meanings and suggested actions.

### `invalid_request`

HTTP Status Code
: *400 Bad Request*

The request is missing a required parameter, includes an unsupported parameter value, or is otherwise malformed. Check the request for missing or incorrect parameters.

### `invalid_content_type`

HTTP Status Code
: *415 Unsupported Media Type*

The request's `Content-Type` header is not supported by the server. Ensure that the `Content-Type` header is set to a supported type, such as `application/json`.

### `access_denied` | `insufficient_scope`

HTTP Status Code
: *403 Forbidden*

The request was valid, but the server is refusing to respond to it. This may be due to insufficient permissions or an invalid token. Check the permissions of the user or client making the request.

### `session_expired`

HTTP Status Code
: *401 Unauthorized*

The request requires authentication, but the session has expired. The user must re-authenticate to obtain a new session token. Check the session expiration settings and ensure the user is logged in.

### `unauthorized_client`

HTTP Status Code
: *401 Unauthorized*

The request requires authentication, but the client is not authorized to perform the requested action. Check the credentials and ensure the client has the necessary permissions.

### `not_found`

HTTP Status Code
: *404 Not Found*

The requested resource or page could not be found. Check the path or the resource ID and ensure it exists.

### `conflict`

HTTP Status Code
: *409 Conflict*

The request could not be completed due to a conflict with the current state of the resource. This may occur when trying to create a resource that already exists or when trying to update a resource that has been modified since it was last retrieved. Check the resource's state and try again.

### `precondition_failed`

HTTP Status Code
: *412 Precondition Failed*

The request included an `If-Match` header whose value does not match the resource's current ETag. The resource has been modified by another client since you last retrieved it. Fetch the latest version and retry your update. See the [Conditional Requests guide](/docs/reference/conditional-requests/) for details.

### `usage_limit_exceeded`

HTTP Status Code
: *429 Too Many Requests*

The request was rejected because the user has exceeded their usage limits. This may occur if the user has made too many requests in a short period of time. Check the usage limits and try again later.

### `server_error`

HTTP Status Code
: *500 Internal Server Error*

An unexpected error occurred on the server. This is a generic error message and may not provide specific details about the issue. If this error persists, please contact support.