Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.kynasmith.dev/llms.txt

Use this file to discover all available pages before exploring further.

Error codes

All Kynasmith API errors follow a consistent envelope:
{
  "error": {
    "code": "error_code_string",
    "message": "Human-readable description of what went wrong.",
    "retryable": false,
    "details": {}
  }
}
  • code — A machine-readable string identifying the error type.
  • message — A human-readable explanation. Do not parse this programmatically.
  • retryable — Whether the request can be retried without changes.
  • details — Additional structured context (varies by error code).

General API errors

CodeHTTP StatusRetryableDescriptionRecommended Action
access_token_missing401NoNo Authorization: Bearer header provided.Add a valid bearer token to the request.
access_token_invalid401NoThe access token is malformed or has been revoked.Mint a new access token.
access_token_expired401YesThe access token has expired.Refresh or re-mint the access token.
insufficient_scope403NoThe token does not have the required scope for this operation.Mint a token with the required scopes. See scopes reference.
project_mismatch403NoThe project_id in the request does not match the token’s project scope.Use the correct project ID or mint a token for the target project.
authorization_failed403NoGeneral authorization failure.Check that your credential has access to the requested resource.
not_found404NoThe requested resource does not exist.Verify the resource ID.
validation_error422NoThe request body failed schema validation.Check the details field for specific field errors.
conflict409NoThe operation conflicts with the current resource state.Read the current resource state and retry with the correct preconditions.
rate_limited429YesToo many requests. See Rate limits.Back off and retry after the Retry-After header duration.
internal_error500YesAn unexpected server error occurred.Retry with exponential backoff. If persistent, contact support with the X-Request-ID.
service_unavailable503YesThe service is temporarily unavailable.Retry with exponential backoff.

MoveSpec errors

CodeHTTP StatusRetryableDescriptionRecommended Action
movespec_not_found404NoThe MoveSpec resource does not exist.Verify the movespec_id.
movespec_version_not_found404NoThe MoveSpec version does not exist.Verify the movespec_version_id.
draft_validation_failed422NoThe draft YAML has blocking validation errors.Fix the errors listed in the validation response, then re-validate.
version_already_released409NoThe version is already in the released state.No action needed — the version is already active.
no_released_version404NoThe MoveSpec has no released version to resolve at runtime.Release an immutable version before creating sessions.

Detection session errors

CodeHTTP StatusRetryableDescriptionRecommended Action
session_not_found404NoThe detection session does not exist.Verify the session_id.
session_already_completed409NoThe session has already reached a terminal state.Create a new session.
session_already_cancelled409NoThe session was cancelled.Create a new session.
contract_version_unsupported422NoYour SDK version is not compatible.Update your SDK to the latest version.
duplicate_active_connection409NoAnother WebSocket connection is already active for this session.Close the existing connection before reconnecting.

Billing and quota errors

These errors are returned when operations are denied due to billing or plan limits.
CodeHTTP StatusRetryableDescriptionRecommended Action
quota_exceeded403NoYour organization has exceeded its plan’s usage quota.Upgrade your plan or wait for the quota reset. Check details.quota_limit, details.current_usage, and details.resets_at.
organization_suspended403NoThe organization has been suspended.Contact support or resolve the suspension reason in the portal.
delinquent_payment403NoThe organization has an overdue payment.Update your payment method in the portal at app.kynasmith.dev.
plan_requires_upgrade403NoThe requested feature is not available on your current plan.Upgrade your plan in the portal.
billing_not_configured403NoBilling has not been set up for this organization.Configure billing in the portal under Settings > Billing.

Billing error response example

{
  "error": {
    "code": "quota_exceeded",
    "message": "Organization has exceeded the monthly accepted-frames quota.",
    "retryable": false,
    "details": {
      "quota_limit": 10000,
      "current_usage": 10001,
      "resets_at": "2026-05-01T00:00:00Z",
      "upgrade_url": "https://app.kynasmith.dev/settings/billing"
    }
  }
}

Distinguishing rate limits from billing errors

  • Rate limiting (rate_limited / HTTP 429): Abuse protection that applies equally to all customers. Retry after the indicated duration.
  • Billing errors (quota_exceeded, plan_requires_upgrade / HTTP 403): Plan-based limits tied to your organization. These require a plan change or waiting for quota reset, not just retrying.
Both SDKs map these to distinct error types (RateLimitError vs. AuthorizationError) so you can handle them differently in your code.