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

# Error codes

> Every error code the KiteFrost API can return, what it means, and how to resolve it.

Every API error response has the same shape: a stable `code`, a human-readable `message`, and a `request_id` for support.

```json theme={null}
{
  "code": "validation_error",
  "message": "...",
  "request_id": "req_..."
}
```

| Code                                                                             | HTTP | Meaning                                                                                             |
| -------------------------------------------------------------------------------- | ---- | --------------------------------------------------------------------------------------------------- |
| [`validation_error`](/errors/validation_error)                                   | -    | The request body or query parameters failed schema validation.                                      |
| [`not_found`](/errors/not_found)                                                 | -    | The requested resource does not exist or you do not have permission to access it.                   |
| [`forbidden`](/errors/forbidden)                                                 | -    | Your API key does not have the required scope for this operation.                                   |
| [`unauthorized`](/errors/unauthorized)                                           | -    | No valid API key was supplied.                                                                      |
| [`rate_limited`](/errors/rate_limited)                                           | -    | You have exceeded the request rate limit for your plan.                                             |
| [`conflict`](/errors/conflict)                                                   | -    | The request conflicts with the current state of the resource (e.g.                                  |
| [`payload_too_large`](/errors/payload_too_large)                                 | -    | The request body exceeds the maximum allowed size.                                                  |
| [`method_not_allowed`](/errors/method_not_allowed)                               | -    | The HTTP method used is not supported for this endpoint.                                            |
| [`gone`](/errors/gone)                                                           | -    | The resource has been permanently deleted and is no longer available.                               |
| [`unprocessable_entity`](/errors/unprocessable_entity)                           | -    | The request was well-formed but contained semantic errors that prevent processing (e.g.             |
| [`content_policy_violation`](/errors/content_policy_violation)                   | -    | The generated or submitted content violates the platform content policy.                            |
| [`invalid_byok_key`](/errors/invalid_byok_key)                                   | -    | The tenant-supplied LLM provider key (BYOK) is invalid, expired, or lacks the required permissions. |
| [`budget_exceeded`](/errors/budget_exceeded)                                     | -    | Your usage budget has been reached.                                                                 |
| [`session_expired`](/errors/session_expired)                                     | -    | The generation session has expired.                                                                 |
| [`feature_disabled`](/errors/feature_disabled)                                   | -    | The requested feature is not enabled for your plan or tenant.                                       |
| [`tenant_suspended`](/errors/tenant_suspended)                                   | -    | Your tenant account has been suspended.                                                             |
| [`webhook_delivery_failed`](/errors/webhook_delivery_failed)                     | -    | Webhook delivery to the registered endpoint failed after all retry attempts.                        |
| [`feedback_payload_too_large`](/errors/feedback_payload_too_large)               | 413  | The feedback event body exceeds the 64KB limit for /v1/feedback.                                    |
| [`feedback_invalid_schema`](/errors/feedback_invalid_schema)                     | 400  | The feedback event is missing required fields or violates the canonical envelope schema.            |
| [`feedback_auth_required_for_signal`](/errors/feedback_auth_required_for_signal) | 401  | This feedback signal type requires an authenticated request.                                        |
| [`feedback_storage_unavailable`](/errors/feedback_storage_unavailable)           | 503  | The feedback datastore is temporarily unavailable.                                                  |
| [`internal_error`](/errors/internal_error)                                       | -    | An unexpected server error occurred.                                                                |
| [`service_unavailable`](/errors/service_unavailable)                             | -    | A required backing service (database, LLM provider, etc.) is temporarily unavailable.               |
| [`dependency_timeout`](/errors/dependency_timeout)                               | -    | A downstream dependency did not respond within the allowed time.                                    |
