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

# API error codes

> Numeric error codes the Kylon API returns, with HTTP status and default message.

Every Kylon API error carries a numeric `code` and a default `message`. Codes are grouped into ranges by category. This page is generated from the API error-code manifest, so it matches the codes the API returns.

## Request / validation (1000-1999)

| Code | Name                              | HTTP | Message                                                                                                                                               |
| ---- | --------------------------------- | ---- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| 1000 | `INVALID_INPUT`                   | 400  | Invalid input                                                                                                                                         |
| 1001 | `DIRECT_MESSAGE_MEMBERSHIP_FIXED` | 400  | Direct message membership is fixed                                                                                                                    |
| 1002 | `THREAD_TARGET_UNSUPPORTED`       | 400  | Thread target is not supported                                                                                                                        |
| 1003 | `EXPORT_FORMAT_UNSUPPORTED`       | 400  | This file cannot be exported to the requested format                                                                                                  |
| 1004 | `APP_HANDOFF_CODE_INVALID`        | 400  | Invalid or expired sign-in code                                                                                                                       |
| 1005 | `WORKFLOW_CODE_INVALID`           | 400  | Workflow code failed to compile                                                                                                                       |
| 1006 | `VOICE_PHONE_NUMBER_REQUIRED`     | 400  | Add a phone number before starting a voice call                                                                                                       |
| 1007 | `SIGNUP_HANDOFF_LINK_UNAVAILABLE` | 400  | This link is no longer available                                                                                                                      |
| 1008 | `REMOTE_MCP_DCR_UNSUPPORTED`      | 400  | This server does not support dynamic client registration. Turn it off and enter a Client ID.                                                          |
| 1009 | `REMOTE_MCP_PKCE_UNSUPPORTED`     | 400  | This server's OAuth configuration does not support the required S256 PKCE method. Ask the server owner to enable S256 PKCE or use another MCP server. |

## Authentication / authorization (2000-2999)

| Code | Name                                | HTTP | Message                                       |
| ---- | ----------------------------------- | ---- | --------------------------------------------- |
| 2000 | `AUTH_REQUIRED`                     | 401  | Authentication required                       |
| 2001 | `ACCESS_DENIED`                     | 403  | Access denied                                 |
| 2002 | `CLIENT_SESSION_REQUIRED`           | 401  | Client session required                       |
| 2003 | `CLIENT_SESSION_INVALID`            | 401  | Client session is no longer valid             |
| 2004 | `ACCOUNT_SUSPENDED`                 | 403  | This account is suspended                     |
| 2005 | `WORKSPACE_SUSPENDED`               | 403  | This workspace is suspended                   |
| 2006 | `SIGNUP_HANDOFF_LINK_NOT_CLAIMABLE` | 403  | This link cannot be claimed with this account |

## Not found (3000-3999)

| Code | Name                              | HTTP | Message                                                   |
| ---- | --------------------------------- | ---- | --------------------------------------------------------- |
| 3000 | `RESOURCE_NOT_FOUND`              | 404  | Resource not found                                        |
| 3001 | `CHANNEL_AGENT_NOT_FOUND`         | 404  | Room agent not found                                      |
| 3002 | `ENDPOINT_RETIRED`                | 410  | Endpoint has been retired                                 |
| 3010 | `APP_RELEASE_NOT_FOUND`           | 404  | App release not found                                     |
| 3011 | `APP_DOWNLOAD_ARTIFACT_NOT_FOUND` | 404  | App download artifact not found                           |
| 3012 | `SIGNUP_HANDOFF_LINK_NOT_FOUND`   | 404  | This link was not found                                   |
| 3013 | `TABLE_RESOURCE_RETIRED`          | 410  | This structured data resource has moved to a Database App |

## Conflict / invalid state (4000-4999)

| Code | Name                                   | HTTP | Message                                                                                                                                                                      |
| ---- | -------------------------------------- | ---- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 4000 | `CONFLICT`                             | 409  | Conflict                                                                                                                                                                     |
| 4001 | `WORKSPACE_MEMBER_ALREADY_EXISTS`      | 409  | User is already a workspace member                                                                                                                                           |
| 4002 | `WORKSPACE_PAYMENT_REQUIRED`           | 402  | Workspace credit is required                                                                                                                                                 |
| 4003 | `WORKSPACE_SETUP_IN_PROGRESS`          | 409  | Workspace setup is already in progress                                                                                                                                       |
| 4010 | `APP_RELEASE_IMMUTABLE`                | 409  | App release is immutable after the edit window                                                                                                                               |
| 4011 | `APP_RELEASE_INVALID_SIGNATURE`        | 409  | App release signature is invalid                                                                                                                                             |
| 4012 | `APP_STORE_LISTING_NOT_LIVE`           | 409  | App store listing is not live                                                                                                                                                |
| 4013 | `TOOL_APPROVAL_REQUIRED`               | 428  | Tool approval is required                                                                                                                                                    |
| 4014 | `EXPORT_NOT_READY`                     | 409  | The export is not ready yet                                                                                                                                                  |
| 4015 | `AGENT_INVOCATION_FANOUT_LIMIT`        | 429  | Too many concurrent sub-agent invocations in flight                                                                                                                          |
| 4020 | `BILLING_ENTITLEMENT_LIMIT_REACHED`    | 403  | Billing plan limit reached                                                                                                                                                   |
| 4021 | `WEB_HANDOFF_RATE_LIMITED`             | 429  | Too many sign-in handoff requests                                                                                                                                            |
| 4022 | `APP_HANDOFF_RATE_LIMITED`             | 429  | Too many sign-in handoff requests                                                                                                                                            |
| 4023 | `BILLING_PLAN_CHANGE_QUOTE_STALE`      | 409  | The amount due for this plan change has changed. Review the updated amount and confirm again.                                                                                |
| 4024 | `REFERRAL_SIGNUP_RATE_LIMITED`         | 429  | Too many signup requests. Try again later.                                                                                                                                   |
| 4025 | `VOICE_OUTBOUND_CALL_RATE_LIMITED`     | 429  | Too many phone calls placed recently. Try again later.                                                                                                                       |
| 4026 | `AGENT_TURN_NOT_RUNNING`               | 409  | This agent turn is no longer running                                                                                                                                         |
| 4027 | `EXTERNAL_AGENT_OPERATOR_ACK_REQUIRED` | 409  | This agent runs in an environment managed by its operator, and the operator cannot read this room. Confirm that room content may be processed there before adding the agent. |
| 4028 | `UI_CARD_INTERACTION_LIMIT_REACHED`    | 409  | This card has reached its response limit                                                                                                                                     |
| 4029 | `SUPPORT_REPORT_RATE_LIMITED`          | 429  | Too many reports from this device. Try again later.                                                                                                                          |
| 4030 | `API_KEY_RATE_LIMITED`                 | 429  | Too many requests from this API credential. Retry after the interval in the Retry-After header.                                                                              |
| 4031 | `API_KEY_QUOTA_EXCEEDED`               | 429  | This API credential has used its daily request quota. Retrying will not succeed until the quota resets.                                                                      |

## Internal / unknown (5000-5999)

| Code | Name                                | HTTP | Message                                                                                                                    |
| ---- | ----------------------------------- | ---- | -------------------------------------------------------------------------------------------------------------------------- |
| 5000 | `INTERNAL_SERVER_ERROR`             | 500  | Internal server error                                                                                                      |
| 5001 | `AUTH_PROVIDER_UNAVAILABLE`         | 503  | The authentication provider is temporarily unavailable                                                                     |
| 5002 | `MODEL_PROVIDER_UNAVAILABLE`        | 503  | No model credential is configured for this operation                                                                       |
| 5003 | `REMOTE_MCP_SERVER_UNREACHABLE`     | 502  | Could not reach the MCP server. Check the server URL and try again.                                                        |
| 5004 | `REMOTE_MCP_SERVER_REJECTED`        | 502  | The MCP server rejected the connection request. Check its authentication requirements and request headers.                 |
| 5005 | `REMOTE_MCP_PROTOCOL_ERROR`         | 502  | The server did not respond as a compatible MCP server. Check that the URL points to a Streamable HTTP MCP endpoint.        |
| 5006 | `REMOTE_MCP_OAUTH_DISCOVERY_FAILED` | 502  | The server requires OAuth, but its authorization configuration could not be discovered. Check the server's OAuth metadata. |
| 5007 | `REMOTE_MCP_DCR_FAILED`             | 502  | The server rejected dynamic client registration. Turn it off and enter credentials for a pre-registered OAuth client.      |
| 5008 | `REMOTE_MCP_OAUTH_START_FAILED`     | 502  | OAuth authorization could not be started for this server. Check its authorization configuration.                           |
