> ## 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. |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.