SETUP GUIDES · ERRORS
Error codes
Every Claspine error response is JSON with a stable code, a detail message and a type link to the code’s entry on this page. The list is generated from Claspine’s source code (508 codes). AI agents can ask the MCP tool explain_error.
Common errors
AI_PROVIDER_NOT_CONFIGURED · HTTP 409
Claspine Atlas: the project has no AI provider yet. Add a provider key on the AI Gateway page (Your AI provider keys), then add a provider and model step to the project’s route on the AI Gateway page.
Messages: Add a provider key in the Secret Vault and a provider:model step to the project's AI route
API_KEY_REQUIRED · HTTP 401
Claspine Atlas: send the project API key in the header X-Spine-Api-Key (sp_live_… or sp_test_…), from your backend. Create keys in the console under API keys (in the project’s menu).
Messages: A Claspine Atlas project API key is required
AUTHENTICATION_DENIED · HTTP 401
The sign-in credential was refused: an expired or foreign Firebase ID token (get a fresh one with getIdToken()), a wrong or expired code, or a provider not set up for this host.
Messages: Authentication was denied
AUTHENTICATION_REQUIRED · HTTP 401
The call needs a signed-in session: send Authorization: Bearer <session token> (or the session cookie with X-Requested-With on POST, PUT and DELETE). On Claspine Atlas, files, AI and payments use the project key instead; console endpoints need a console sign-in.
Messages: Authentication is required · Sign in to Claspine Atlas to manage projects
AUTHORIZATION_DENIED · HTTP 403
The signed-in account lacks the permission for this action. Grant it (self-hosted Spring Boot: permission grants or memberships) or call as an account that has it.
Messages: Action is not allowed
BYOK_CREDENTIAL_REJECTED
The AI provider refused the stored key (revoked, wrong project or region, or no access to the model). Replace the key (AI Gateway → Your AI provider keys, or Secret Vault) and check the model is enabled at the provider.
BYOK_NOT_CONFIGURED
No AI provider credentials are stored for this product. Claspine Atlas: AI Gateway → Your AI provider keys → Add key (or Secret Vault → AI Models), then add the provider to the AI route.
Messages: No LLM provider credentials are configured for this product
CODE_RATE_LIMITED · HTTP 429
Too many sign-in codes for this address, client or application. Wait (Retry-After) before sending another; Claspine limits codes to stop abuse.
Messages: Too many codes requested; try again later
DEPLOYMENT_INACTIVE · HTTP 400
The deployment for this host is not active. Self-hosted: check platform.bootstrap and the deployment status.
Messages: Deployment is not active · Only active deployments can change capabilities · Domain requires an active deployment · Mobile target requires an active deployment
FILE_NOT_FOUND · HTTP 404
No stored file with that id in this project or product: use the id returned by /files/register, from the same project key or host.
Messages: File not found · File reference was not found
FILE_PROVIDER_NOT_CONFIGURED
No storage bucket is set up. Claspine Atlas: File Storage → choose the provider → Save & test. Engine: the PLATFORM_S3STORAGE_* settings.
Messages: File storage provider is not configured
FREE_TIER_EXHAUSTED
Engine: the built-in free AI providers are not configured or are all cooling down. Give the engine your own provider key for reliable use.
Messages: No free-tier providers configured · All free-tier providers are on cooldown or unavailable
HOST_NOT_AVAILABLE · HTTP 404
Self-hosted: the request’s host is not one of the application’s hosts. Send X-Spine-Host (Node SDK: tenantHost) with one of SPINE_HOSTS / platform.bootstrap.hosts. Hosts are names, never IP addresses; localhost works in DEVELOPMENT and TEST.
Messages: Host is not available
INTENT_NOT_FOUND · HTTP 404
The intent name is not defined. Omit intent to use the default route, or define it (Claspine Atlas: AI Gateway routes; engine: the LLM definitions folder, platform.llm.definitions).
Messages: Unknown intent; define it in the engine's LLM definitions (platform.llm.definitions) · Intent not found · Unknown intent; define it in the console under AI Gateway
INVALID_API_KEY · HTTP 401
The key is unknown, revoked or expired, or belongs to another project. Check SPINE_API_KEY on the server and create a new key in the console if needed.
Messages: Invalid or revoked Claspine Atlas API key
LLM_INPUT_TOO_LARGE · HTTP 400
input plus variables exceed the size limit. Shorten or split the text; send long documents as files and summarise them in parts.
LLM_RATE_LIMITED · HTTP 503
The per-minute AI limit (Claspine Atlas plan, or the engine service key) was reached. Retry after a minute with backoff, or spread requests.
Messages: The project's per-minute LLM request limit was reached; retry in a minute
LLM_UNAVAILABLE · HTTP 503
No AI provider could answer: none is configured, or every provider in the route is rate limited or down. Add a provider key (Claspine Atlas: Secret Vault, then an AI Gateway route; engine: PLATFORM_LLM_<PROVIDER>_APIKEYREFERENCE) and a fallback step.
Messages: No language model provider is currently available; retry later
MESSAGE_IDEMPOTENCY_CONFLICT · HTTP 409
This Idempotency-Key was used for a different message. Use one key per message (for example order-A-42-shipped); repeating the same request with the same key is safe and returns the first message.
Messages: This idempotency key was used for a different message
MESSAGE_NOT_FOUND · HTTP 404
No message with that id in this project (messages are kept for the history period, 30 days by default).
Messages: Message not found
MESSAGE_RECIPIENT_INVALID · HTTP 400
to must be an email address for email, or a phone number in international form with + and the country code for SMS and WhatsApp (+14155550123).
MESSAGE_TEMPLATE_NOT_FOUND · HTTP 404
No template with that name for that channel. Names are exact (order.shipped). Claspine Atlas: Messaging → Templates; self-hosted: the notification YAML.
Messages: No such template
MESSAGE_VARIABLES_INVALID · HTTP 400
Variable names start with a letter and use letters, digits and _; at most 30 values of up to 1000 characters, and the rendered subject and text must fit (160 and 4000 characters).
Messages: The rendered message is too long (subject up to 160, text up to 4000 characters)
MESSAGE_VARIABLES_MISSING · HTTP 400
Send a value for every {{name}} in the template, and for every variable a WhatsApp template maps to its numbered blanks; the message lists the missing ones.
MESSAGES_QUOTA_EXCEEDED · HTTP 429
The project’s monthly message limit was reached; it resets at the start of next month. A larger plan raises it.
Messages: The project's monthly message limit was reached; it resets at the start of next month
MESSAGES_RATE_LIMITED · HTTP 429
The per-minute message limit (Claspine Atlas plan, or the engine’s per-minute limit) was reached. Retry after a minute; spread bulk sends.
Messages: Too many messages this minute; retry in a minute · The project's per-minute message limit was reached; retry in a minute
MESSAGING_NOT_CONFIGURED · HTTP 409
The channel is not set up for sending. Claspine Atlas: Messaging → Setup shows the next step (provider keys in the Secret Vault, the from address or WhatsApp number). Self-hosted: configure the provider (platform.ses.*, platform.smtp.*, platform.whatsapp.*).
Messages: Choose the email provider and from address first · Add your AWS access key in the Secret Vault first · Add your SMTP service in the Secret Vault first · Choose the AWS region of your WhatsApp account first
MESSAGING_SUSPENDED · HTTP 409
Claspine suspended messaging for this project, usually after an abuse report. Contact support@claspine.com.
Messages: Messaging is suspended for this project; contact support@claspine.com
NOT_AVAILABLE_ON_CLOUD · HTTP 409
This capability is not part of Claspine Atlas. See https://claspine.com/docs/what-runs-where/ ; self-hosted Claspine offers it.
Messages: Claspine Atlas does not send email, SMS, WhatsApp or push messages. Self-hosted Claspine does.
PAYMENT_ALREADY_PAID
The order is paid, so it cannot be cancelled. Refund it instead.
PAYMENT_IDEMPOTENCY_CONFLICT · HTTP 409
The idempotency key was already used for a different request. Use a new key per distinct operation; reuse a key only to retry the same request.
Messages: Payment idempotency key was used for another request
PAYMENT_ORDER_NOT_FOUND · HTTP 404
No payment order with that id for this project or product. Use the orderId returned by the checkout call, with the same project key or host.
Messages: Payment order not found
PAYMENT_PROVIDER_NOT_CONFIGURED
The payment provider is not connected. Claspine Atlas: Payments page (Stripe or Razorpay keys and webhook). Engine: the provider settings.
Messages: The order's payment provider is not configured
PAYMENT_PROVIDER_REJECTED
The payment provider refused to create the order; detail gives its reason. "not configured" means the provider is not connected for this project or mode (Claspine Atlas: Payments page; test keys for sp_test_ project keys, live keys for sp_live_).
PAYMENT_REFUND_REJECTED
The payment provider refused the refund; the order stays paid. Check the provider dashboard for the reason (for example already refunded there, or too old).
Messages: The payment provider refused the refund; the order stays paid
PAYMENT_REFUND_UNAVAILABLE
The provider could not be reached or did not answer; nothing was refunded. Retry later with the same amount.
PAYMENT_REQUIRED · HTTP 402
Claspine Atlas: a paid plan is bought through checkout on the project’s Settings → Plan & billing page, not by changing the plan directly.
PAYMENT_RETURN_URL_NOT_ALLOWED
successUrl and cancelUrl must be https on a host allowed for this product (your application’s hosts / return hosts).
Messages: Return URL must be https on a host allowed for this product
PLATFORM_UNEXPECTED_ERROR
Claspine failed unexpectedly. Retry once; if it persists, send the correlationId from the response to support.
PRODUCT_SCOPE_MISMATCH · HTTP 400
The body names a productId that is not the one of this host or key. Leave productId out: Claspine takes it from the key or host.
Messages: productId does not match the deployment of this host
RATE_LIMITED · HTTP 429
Too many requests in a short time. Wait for the Retry-After header’s seconds and retry with backoff. On Claspine Atlas the per-minute limit depends on the plan.
Messages: Anthropic rate limit exceeded · Gemini rate limit exceeded · Too many projects created in a short time; wait a minute
SERVICE_KEY_HOST_NOT_ALLOWED · HTTP 403
Engine: the service key is limited to other hosts. Send an allowed X-Spine-Host or add the host to PLATFORM_ENGINE_SERVICEKEYS_<n>_HOSTS.
SERVICE_KEY_SCOPE_MISSING · HTTP 403
Engine: the service key is not allowed this capability. Add the scope (files, llm, payments, messages) to PLATFORM_ENGINE_SERVICEKEYS_<n>_SCOPES and restart the engine.
STORAGE_LOCATOR_OUT_OF_SCOPE · HTTP 400
Register only the storageLocator that Claspine returned from presigned-upload for this same project or product; locators of other projects are refused.
Messages: storageLocator was not issued to this product · storageLocator was not issued to this project
TEST_RECIPIENT_REQUIRED · HTTP 409
An sp_test_ key (or a console test send) reaches only the project’s confirmed test recipients. Add the address under Messaging → Test, or send with an sp_live_ key.
Messages: Test messages go only to the project's confirmed test recipients
VALIDATION_FAILED · HTTP 400
The request is malformed or a value is out of range; detail says which. Compare the body with the API reference (api_reference tool or platform-api.yaml).
Messages: idempotencyKey: 1-80 letters, digits, '.', '_', ':' or '-' · objectKeyPrefix must not contain relative path segments · objectKeyPrefix must not start with organizations/ · contentType is required
All codes
Status is shown where the error type fixes it; module errors set it per case. “Where” is the part of Claspine that raises it.
ACCOUNT_CLOSED · HTTP 409
This account is closed
Where: spine/server
ACCOUNT_CLOSURE_SCHEDULED · HTTP 409
The account is already being closed
Where: spine/server
ACCOUNT_HAS_ACTIVE_PROJECTS · HTTP 409
Delete every project first (export anything you need before deleting it)
Where: spine/server
ACCOUNT_IDEMPOTENCY_CONFLICT · HTTP 409
Account idempotency key was used for another request
Where: platform/modules/identity
ACCOUNT_INACTIVE · HTTP 400
Account is not active
Where: platform/modules/identity
ACCOUNT_NOT_FOUND · HTTP 404
Account was not found · No account with that id
Where: platform/modules/identity, platform/modules/memberships, spine/server
ACCOUNT_REGISTRATION_INVALID · HTTP 400
Account registration command is incomplete
Where: platform/modules/identity
ACCOUNT_REVISION_CONFLICT · HTTP 409
Account was changed by another operation
Where: platform/modules/identity
ACCOUNT_STATUS_CHANGE_INVALID · HTTP 400
Account status change command is incomplete
Where: platform/modules/identity
ACCOUNT_UNUSABLE
Where: platform/modules/notifications
AGENT_ACCESS_NOT_FOUND · HTTP 404
No such connected agent
Where: spine/server
AI_PROVIDER_CREDENTIAL_REJECTED · HTTP 409
Where: spine/server
API_KEY_NOT_FOUND · HTTP 404
API key not found
Where: spine/server
APP_STORE_CONNECT_GATEWAY_DISABLED
Live App Store Connect gateway is disabled
Where: platform/modules/releases
APP_STORE_HALT_FAILED
Where: platform/modules/releases
APP_STORE_HALT_INTERRUPTED
Halt was interrupted
Where: platform/modules/releases
APP_STORE_HALT_IO_ERROR
Where: platform/modules/releases
APP_STORE_JWT_SIGNING_FAILED
Where: platform/modules/releases
APP_STORE_PROMOTE_FAILED
Where: platform/modules/releases
APP_STORE_PROMOTE_INTERRUPTED
Promotion was interrupted
Where: platform/modules/releases
APP_STORE_PROMOTE_IO_ERROR
Where: platform/modules/releases
APP_STORE_TARGET_INVALID
App Store Connect requires an iOS production target
Where: platform/modules/releases
APP_STORE_VERIFY_HALT_INTERRUPTED
Verify halt was interrupted
Where: platform/modules/releases
APP_STORE_VERIFY_HALT_IO_ERROR
Where: platform/modules/releases
APP_STORE_VERIFY_INTERRUPTED
Verify was interrupted
Where: platform/modules/releases
APP_STORE_VERIFY_IO_ERROR
Where: platform/modules/releases
APP_STORE_VERIFY_POLL_INTERRUPTED
Verify poll was interrupted
Where: platform/modules/releases
APPOINTMENT_BOOK_INVALID · HTTP 400
Appointment booking command is incomplete
Where: domain-packs/healthcare/backend
APPOINTMENT_CONFLICT · HTTP 409
Appointment idempotency key conflicts with existing state
Where: domain-packs/healthcare/backend
APPOINTMENT_IDEMPOTENCY_CONFLICT · HTTP 409
Appointment idempotency key was used for another request
Where: domain-packs/healthcare/backend
APPOINTMENT_NOT_FOUND · HTTP 404
Appointment was not found
Where: domain-packs/healthcare/backend
APPOINTMENT_RESCHEDULE_INVALID · HTTP 400
Appointment reschedule command is incomplete
Where: domain-packs/healthcare/backend
APPOINTMENT_REVISION_CONFLICT · HTTP 409
Appointment was changed by another operation
Where: domain-packs/healthcare/backend
APPOINTMENT_STATUS_INVALID · HTTP 400
Appointment status command is incomplete
Where: domain-packs/healthcare/backend
ARTIFACT_BUILDER_UNSUPPORTED · HTTP 400
Artifact builder is not configured
Where: platform/modules/releases
ARTIFACT_VERIFIER_UNAVAILABLE · HTTP 400
Artifact verifier is not configured
Where: platform/modules/releases
AUDIT_CHAIN_CONTENDED · HTTP 503
The audit trail is under heavy concurrent writes; the operation was not performed. Retry shortly.
Where: platform/modules/audit
AUTH_ERROR
Anthropic authentication failed · Gemini authentication failed
Where: platform/modules/llm, platform/modules/payments
AUTHENTICATION_UNAVAILABLE · HTTP 503
Authentication is temporarily unavailable
Where: platform/modules/authentication
BILLING_CUSTOMER_NOT_FOUND · HTTP 404
There is no billing account for this customer yet
Where: platform/modules/payments
BILLING_UNAVAILABLE · HTTP 409
Online payment is not available yet; contact Claspine sales to upgrade
Where: spine/server
BRAND_INACTIVE · HTTP 400
Only active brands can be updated · Mobile release requires an active brand
Where: platform/modules/brands, platform/modules/releases
BRAND_NOT_FOUND · HTTP 404
Brand was not found
Where: platform/modules/brands
BYOK_EMBEDDINGS_UNSUPPORTED
Embeddings are not available with product-supplied credentials
Where: platform/modules/llm
BYOK_MODEL_LISTING_UNSUPPORTED
Where: platform/modules/llm
BYOK_PROVIDERS_UNAVAILABLE
Where: platform/modules/llm
BYOK_REQUEST_REJECTED
Where: platform/modules/llm
CALLBACK_URL_REQUIRED · HTTP 400
Set a callback URL first
Where: spine/server
CANCELLATION_NOT_VERIFIED · HTTP 409
Provider did not verify cancellation
Where: platform/modules/provisioning
CARE_COMMITMENT_CONFLICT · HTTP 409
Care commitment idempotency key conflicts with existing state
Where: domain-packs/healthcare/backend
CARE_COMMITMENT_REVISION_CONFLICT · HTTP 409
Care commitment was changed by another operation
Where: domain-packs/healthcare/backend
CARE_EVENT_CONFLICT · HTTP 409
Care event idempotency key conflicts with existing state
Where: domain-packs/healthcare/backend
CARE_EVENT_IDEMPOTENCY_CONFLICT · HTTP 409
Care event idempotency key was used for another request
Where: domain-packs/healthcare/backend
CARE_EVENT_INVALID · HTTP 400
Care event command is incomplete
Where: domain-packs/healthcare/backend
CARE_PLAN_APPROVE_INVALID · HTTP 400
Care plan approval command is incomplete
Where: domain-packs/healthcare/backend
CARE_PLAN_CONFLICT · HTTP 409
Care plan idempotency key conflicts with existing state
Where: domain-packs/healthcare/backend
CARE_PLAN_CREATE_INVALID · HTTP 400
Care plan creation command is incomplete
Where: domain-packs/healthcare/backend
CARE_PLAN_IDEMPOTENCY_CONFLICT · HTTP 409
Care plan idempotency key was used for another request
Where: domain-packs/healthcare/backend
CARE_PLAN_NOT_DRAFT · HTTP 409
Only draft care plans can be approved
Where: domain-packs/healthcare/backend
CARE_PLAN_NOT_FOUND · HTTP 404
Care plan was not found
Where: domain-packs/healthcare/backend
CARE_PLAN_REVISION_CONFLICT · HTTP 409
Care plan was changed by another operation
Where: domain-packs/healthcare/backend
CERTIFICATE_PROVIDER_NOT_FOUND · HTTP 400
Certificate provider is not registered
Where: platform/modules/domains
CI_TOKEN_INVALID · HTTP 401
CI token is invalid, expired, or scoped to a different operation
Where: platform/modules/provisioning
CI_TOKEN_REQUIRED · HTTP 401
X-CI-Token header is required
Where: platform/modules/provisioning
CODE_CHANNEL_INVALID · HTTP 400
email-code sends codes by email · phone-code sends codes by SMS or WhatsApp
Where: platform/modules/authentication
CODE_CHANNEL_UNAVAILABLE · HTTP 503
Where: platform/modules/authentication
CODE_DELIVERY_FAILED · HTTP 503
The code could not be sent; try again shortly
Where: platform/modules/authentication
CODE_PROVIDER_INVALID · HTTP 400
provider must be phone-code or email-code
Where: platform/modules/authentication
CODE_PROVIDER_NOT_BOUND · HTTP 404
Sign-in codes are not available
Where: platform/modules/authentication
CODE_SETTINGS_INVALID · HTTP 503
Sign-in codes are not set up correctly for this application
Where: platform/modules/authentication
COMMITMENT_CREATE_INVALID · HTTP 400
Care commitment creation command is incomplete
Where: domain-packs/healthcare/backend
COMMITMENT_IDEMPOTENCY_CONFLICT · HTTP 409
Care commitment idempotency key was used for another request
Where: domain-packs/healthcare/backend
COMMITMENT_NOT_FOUND · HTTP 404
Care commitment was not found
Where: domain-packs/healthcare/backend
COMMITMENT_REVISION_CONFLICT · HTTP 409
Care commitment was changed by another operation
Where: domain-packs/healthcare/backend
COMMITMENT_STATUS_INVALID · HTTP 400
Care commitment status command is incomplete
Where: domain-packs/healthcare/backend
COMPLIMENTARY_PLAN · HTTP 409
This project's plan is provided by Claspine; contact Claspine to change it
Where: spine/server
CONFIRMATION_MISMATCH · HTTP 400
Type the project's slug exactly to confirm deletion
Where: spine/server
CONSENT_CONFLICT · HTTP 409
Consent idempotency key conflicts with existing state
Where: domain-packs/healthcare/backend
CONSENT_GRANT_INVALID · HTTP 400
Consent grant command is incomplete
Where: domain-packs/healthcare/backend
CONSENT_IDEMPOTENCY_CONFLICT · HTTP 409
Consent idempotency key was used for another request
Where: domain-packs/healthcare/backend
CONSENT_NOT_ACTIVE · HTTP 409
Only active consent grants can be revoked
Where: domain-packs/healthcare/backend
CONSENT_NOT_FOUND · HTTP 404
Consent grant was not found
Where: domain-packs/healthcare/backend
CONSENT_REVISION_CONFLICT · HTTP 409
Consent grant was changed by another operation
Where: domain-packs/healthcare/backend
CONSENT_REVOKE_INVALID · HTTP 400
Consent revoke command is incomplete
Where: domain-packs/healthcare/backend
CREDENTIAL_EXCHANGE_INVALID · HTTP 400
Credential exchange command is incomplete
Where: platform/modules/authentication
CUSTOM_DOMAIN_REQUIRED · HTTP 400
Managed lifecycle requires a custom domain
Where: platform/modules/domains
DATABASE_NOT_SUPPORTED · HTTP 400
Where: spine/server
DELIVERY_PROVIDER_UNAVAILABLE · HTTP 400
Delivery provider is unavailable
Where: platform/modules/provisioning
DEPLOYMENT_DEPENDENCY_INACTIVE · HTTP 400
Deployment dependencies must be active
Where: platform/modules/deployments
DEPLOYMENT_NOT_FOUND · HTTP 404
Deployment was not found
Where: platform/modules/deployments
DEPLOYMENT_NOT_PROVISIONED · HTTP 400
Deprovision requires a verified successful provision operation
Where: platform/modules/provisioning
DEPLOYMENT_OPERATION_IN_PROGRESS · HTTP 409
Deployment already has an active operation
Where: platform/modules/provisioning
DEPLOYMENT_ORGANIZATION_CONFLICT · HTTP 409
Organization is already bound to this deployment
Where: platform/modules/deployments
DESTINATION_INVALID · HTTP 400
Where: platform/modules/authentication
DESTINATION_NOT_ALLOWED · HTTP 400
Codes are not sent to phone numbers in this country
Where: platform/modules/authentication
DNS_PROVIDER_NOT_FOUND · HTTP 400
DNS provider is not registered
Where: platform/modules/domains
DOCUMENT_ALREADY_EXISTS · HTTP 409
Where: platform/foundation
DOCUMENT_CONFLICT · HTTP 409
Document idempotency key conflicts with existing state
Where: domain-packs/healthcare/backend
DOCUMENT_IDEMPOTENCY_CONFLICT · HTTP 409
Document idempotency key was used for another request
Where: domain-packs/healthcare/backend
DOCUMENT_NOT_FOUND · HTTP 404
Document was not found
Where: domain-packs/healthcare/backend
DOCUMENT_REGISTER_INVALID · HTTP 400
Document registration command is incomplete
Where: domain-packs/healthcare/backend
DOMAIN_BINDING_NOT_FOUND · HTTP 404
Domain binding was not found
Where: platform/modules/domains
DOMAIN_CONFLICT · HTTP 409
Hostname is already registered
Where: platform/modules/domains
DOMAIN_NOT_DISABLEABLE · HTTP 400
Domain has no attached managed endpoint
Where: platform/modules/domains
DOMAIN_NOT_DRAFT · HTTP 400
Managed lifecycle requires a draft binding
Where: platform/modules/domains
DOMAIN_NOT_FOUND · HTTP 404
Domain not found
Where: spine/server
DOMAIN_NOT_RENEWABLE · HTTP 400
Only an active domain can be renewed
Where: platform/modules/domains
DOMAIN_PROVIDER_ENVIRONMENT_FORBIDDEN · HTTP 400
Selected domain providers are disabled for this environment
Where: platform/modules/domains
EMBEDDING_NOT_SUPPORTED
Anthropic does not offer embeddings
Where: platform/modules/llm
ENCOUNTER_CONFLICT · HTTP 409
Encounter idempotency key conflicts with existing state
Where: domain-packs/healthcare/backend
ENCOUNTER_CREATE_INVALID · HTTP 400
Encounter creation command is incomplete
Where: domain-packs/healthcare/backend
ENCOUNTER_IDEMPOTENCY_CONFLICT · HTTP 409
Encounter idempotency key was used for another request
Where: domain-packs/healthcare/backend
ENCOUNTER_NOT_FOUND · HTTP 404
Encounter was not found
Where: domain-packs/healthcare/backend
ENCOUNTER_REVISION_CONFLICT · HTTP 409
Encounter was changed by another operation
Where: domain-packs/healthcare/backend
ENCOUNTER_STATUS_INVALID · HTTP 400
Encounter status command is incomplete
Where: domain-packs/healthcare/backend
ENDPOINT_CONFLICT · HTTP 409
Notification endpoint or idempotency key conflicts with existing state
Where: platform/modules/notifications
ENDPOINT_IDEMPOTENCY_CONFLICT · HTTP 409
Endpoint idempotency key was used for another request
Where: platform/modules/notifications
ENDPOINT_NOT_FOUND · HTTP 404
Notification endpoint was not found
Where: platform/modules/notifications
ENDPOINT_REVISION_CONFLICT · HTTP 409
Notification endpoint was changed by another operation
Where: platform/modules/notifications
ENTITLEMENT_CONFLICT · HTTP 409
Scope already has this feature entitlement · Entitlement or idempotency key conflicts with existing state
Where: platform/modules/features
ENTITLEMENT_FEATURE_INACTIVE · HTTP 400
Entitlement feature is not active for the product
Where: platform/modules/features
ENTITLEMENT_IDEMPOTENCY_CONFLICT · HTTP 409
Entitlement idempotency key was used for another request
Where: platform/modules/features
ENTITLEMENT_INVALID · HTTP 400
Entitlement command is incomplete
Where: platform/modules/features
ENTITLEMENT_NOT_FOUND · HTTP 404
Entitlement was not found
Where: platform/modules/features
ENTITLEMENT_ORGANIZATION_INACTIVE · HTTP 400
Entitlement organization is not active
Where: platform/modules/features
ENTITLEMENT_PRODUCT_INACTIVE · HTTP 400
Entitlement product is not active
Where: platform/modules/features
ENTITLEMENT_REVISION_CONFLICT · HTTP 409
Entitlement was changed by another operation
Where: platform/modules/features
ENTITLEMENT_SCOPE_INVALID · HTTP 400
Entitlement scope is required
Where: platform/modules/features
ENTITLEMENT_STATUS_INVALID · HTTP 400
Entitlement status command is incomplete
Where: platform/modules/features
EXPORT_IN_PROGRESS · HTTP 429
An export of this project is already running
Where: spine/server
EXPORT_UNAVAILABLE · HTTP 503
Export needs the PostgreSQL control-plane store
Where: spine/server
EXTERNAL_IDENTITY_CONFLICT · HTTP 409
External identity is already linked
Where: platform/modules/identity
EXTERNAL_IDENTITY_LINK_INVALID · HTTP 400
External identity link command is incomplete
Where: platform/modules/identity
EXTERNAL_IDENTITY_NOT_FOUND · HTTP 404
External identity was not found
Where: platform/modules/identity
EXTERNAL_IDENTITY_REVOCATION_INVALID · HTTP 400
External identity revocation command is incomplete
Where: platform/modules/identity
FEATURE_DEFINITION_CONFLICT · HTTP 409
Product already has this feature definition · Feature definition or idempotency key conflicts with existing state
Where: platform/modules/features
FEATURE_DEFINITION_INVALID · HTTP 400
Feature definition command is incomplete
Where: platform/modules/features
FEATURE_DEFINITION_NOT_FOUND · HTTP 404
Feature definition was not found
Where: platform/modules/features
FEATURE_IDEMPOTENCY_CONFLICT · HTTP 409
Feature idempotency key was used for another request
Where: platform/modules/features
FEATURE_PRODUCT_INACTIVE · HTTP 400
Feature product is not active
Where: platform/modules/features
FEATURE_REVISION_CONFLICT · HTTP 409
Feature definition was changed by another operation
Where: platform/modules/features
FEATURE_STATUS_INVALID · HTTP 400
Feature status command is incomplete
Where: platform/modules/features
FEATURE_UNAVAILABLE · HTTP 400
Feature is not available
Where: platform/modules/features
FILE_CONFLICT · HTTP 409
File reference or idempotency key conflicts with existing state
Where: platform/modules/files
FILE_DELETE_INVALID
File delete command is incomplete
Where: platform/modules/files
FILE_IDEMPOTENCY_CONFLICT · HTTP 409
File idempotency key was used for another request
Where: platform/modules/files
FILE_PROVIDER_UNAVAILABLE
File storage provider rejected the signed URL request · File storage provider rejected the upload URL request
Where: platform/modules/files
FILE_REGISTER_INVALID
File register command is incomplete
Where: platform/modules/files
FILE_REQUEST_INVALID
File upload request command is incomplete · File upload object key prefix must be 1 to 512 characters · File upload object key prefix must contain only letters, digits, dots, slashes, and hyphens · File content type must contain 1 to 128 safe characters
Where: platform/modules/files
FILE_REVISION_CONFLICT · HTTP 409
File reference was changed by another operation
Where: platform/modules/files
FILE_SCOPE_UNAVAILABLE
File scope is unavailable in the exact product context · File scope is unavailable in the exact organization context
Where: platform/modules/files
FILE_SIGNED_URL_INVALID
File signed URL command is incomplete · File signed URL expiry must be between 1 and 60 minutes · File signed URL is only available for stored files
Where: platform/modules/files
FIREBASE_GATEWAY_DISABLED
Live Firebase App Distribution gateway is disabled
Where: platform/modules/releases
FIREBASE_UPLOAD_FAILED
Where: platform/modules/releases
FIREBASE_UPLOAD_INTERRUPTED
Firebase upload was interrupted
Where: platform/modules/releases
FIREBASE_UPLOAD_IO_ERROR
Where: platform/modules/releases
FIREBASE_VERIFY_INTERRUPTED
Verify was interrupted
Where: platform/modules/releases
FIREBASE_VERIFY_IO_ERROR
Where: platform/modules/releases
FIREBASE_VERIFY_POLL_INTERRUPTED
Verify poll was interrupted
Where: platform/modules/releases
FIRESTORE_CONFLICT · HTTP 409
Where: platform/foundation
FIRESTORE_CREATE_FAILED · HTTP 503
Where: platform/foundation
FIRESTORE_DELETE_FAILED · HTTP 503
Where: platform/foundation
FIRESTORE_ERROR · HTTP 503
Where: platform/foundation
FIRESTORE_GET_FAILED · HTTP 503
Where: platform/foundation
FIRESTORE_NOT_FOUND · HTTP 404
Where: platform/foundation
FIRESTORE_QUERY_FAILED · HTTP 503
Where: platform/foundation
FIRESTORE_SAVE_FAILED · HTTP 503
Where: platform/foundation
FIRESTORE_UNAVAILABLE · HTTP 503
Where: platform/foundation
FIRST_PARTY_ORGANIZATION_FORBIDDEN · HTTP 400
First-party deployments do not require a synthetic organization · First-party domains cannot select an organization · First-party mobile targets cannot use a synthetic organization · First-party provisioning cannot manufacture tenancy
Where: platform/modules/deployments, platform/modules/domains, platform/modules/mobile, platform/modules/provisioning
GITHUB_ARTIFACT_LOOKUP_FAILED
Where: platform/modules/releases
GITHUB_ARTIFACT_LOOKUP_INTERRUPTED
Artifact lookup was interrupted
Where: platform/modules/releases
GITHUB_ARTIFACT_LOOKUP_IO_ERROR
Where: platform/modules/releases
GITHUB_ARTIFACT_NOT_FOUND
Where: platform/modules/releases
GITHUB_BUILD_DISPATCH_FAILED
Where: platform/modules/releases
GITHUB_BUILD_DISPATCH_INTERRUPTED
Build dispatch was interrupted
Where: platform/modules/releases
GITHUB_BUILD_DISPATCH_IO_ERROR
Where: platform/modules/releases
GITHUB_BUILD_FAILED
Where: platform/modules/releases
GITHUB_BUILD_POLL_INTERRUPTED
Build poll was interrupted
Where: platform/modules/releases
GITHUB_BUILD_RUN_LOOKUP_FAILED
Where: platform/modules/releases
GITHUB_BUILD_RUN_LOOKUP_INTERRUPTED
Run lookup was interrupted
Where: platform/modules/releases
GITHUB_BUILD_RUN_LOOKUP_IO_ERROR
Where: platform/modules/releases
GITHUB_BUILD_RUN_NOT_FOUND
Where: platform/modules/releases
GITHUB_BUILD_STATUS_FAILED
Where: platform/modules/releases
GITHUB_BUILD_STATUS_INTERRUPTED
Status fetch was interrupted
Where: platform/modules/releases
GITHUB_BUILD_STATUS_IO_ERROR
Where: platform/modules/releases
GITHUB_BUILD_TIMEOUT
Where: platform/modules/releases
GITHUB_CANCEL_INTERRUPTED
Cancel was interrupted
Where: platform/modules/provisioning
GITHUB_CANCEL_IO_ERROR
Where: platform/modules/provisioning
GITHUB_DISPATCH_FAILED
Where: platform/modules/provisioning
GITHUB_DISPATCH_INTERRUPTED
Dispatch was interrupted
Where: platform/modules/provisioning
GITHUB_DISPATCH_IO_ERROR
Where: platform/modules/provisioning
GITHUB_RUN_LOOKUP_FAILED
Where: platform/modules/provisioning
GITHUB_RUN_LOOKUP_INTERRUPTED
Run lookup was interrupted
Where: platform/modules/provisioning
GITHUB_RUN_LOOKUP_IO_ERROR
Where: platform/modules/provisioning
GITHUB_RUN_NOT_FOUND
Where: platform/modules/provisioning
GITHUB_STATUS_FAILED
Where: platform/modules/provisioning
GITHUB_STATUS_INTERRUPTED
Status fetch was interrupted
Where: platform/modules/provisioning
GITHUB_STATUS_IO_ERROR
Where: platform/modules/provisioning
GOOGLE_PLAY_EDIT_COMMIT_FAILED
Where: platform/modules/releases
GOOGLE_PLAY_EDIT_COMMIT_INTERRUPTED
Edit commit was interrupted
Where: platform/modules/releases
GOOGLE_PLAY_EDIT_COMMIT_IO_ERROR
Where: platform/modules/releases
GOOGLE_PLAY_EDIT_CREATE_FAILED
Where: platform/modules/releases
GOOGLE_PLAY_EDIT_CREATE_INTERRUPTED
Edit creation was interrupted
Where: platform/modules/releases
GOOGLE_PLAY_EDIT_CREATE_IO_ERROR
Where: platform/modules/releases
GOOGLE_PLAY_GATEWAY_DISABLED
Live Google Play gateway is disabled
Where: platform/modules/releases
GOOGLE_PLAY_HALT_FAILED
Where: platform/modules/releases
GOOGLE_PLAY_HALT_INTERRUPTED
Halt was interrupted
Where: platform/modules/releases
GOOGLE_PLAY_HALT_IO_ERROR
Where: platform/modules/releases
GOOGLE_PLAY_TARGET_INVALID
Google Play requires an Android production target
Where: platform/modules/releases
GOOGLE_PLAY_TRACK_UPDATE_FAILED
Where: platform/modules/releases
GOOGLE_PLAY_TRACK_UPDATE_INTERRUPTED
Track update was interrupted
Where: platform/modules/releases
GOOGLE_PLAY_TRACK_UPDATE_IO_ERROR
Where: platform/modules/releases
GOOGLE_PLAY_VERIFY_HALT_INTERRUPTED
Verify halt was interrupted
Where: platform/modules/releases
GOOGLE_PLAY_VERIFY_HALT_IO_ERROR
Where: platform/modules/releases
GOOGLE_PLAY_VERIFY_INTERRUPTED
Verify was interrupted
Where: platform/modules/releases
GOOGLE_PLAY_VERIFY_IO_ERROR
Where: platform/modules/releases
GOOGLE_PLAY_VERIFY_POLL_INTERRUPTED
Verify poll was interrupted
Where: platform/modules/releases
HOST_RESOLUTION_UNAVAILABLE · HTTP 503
Host resolution is temporarily unavailable
Where: platform/modules/domains
IDEMPOTENCY_KEY_REUSED · HTTP 409
Idempotency key was used for a different request · Idempotency key was used for another release
Where: platform/modules/provisioning, platform/modules/releases
IDENTITY_ACCOUNT_CONFLICT · HTTP 409
Account registration or external identity conflicts with existing state
Where: platform/modules/identity
IDENTITY_PROVIDER_ALREADY_BOUND · HTTP 409
Deployment already binds this identity provider
Where: platform/modules/authentication
IDENTITY_PROVIDER_BINDING_CONFLICT · HTTP 409
Binding scope or idempotency key conflicts with existing state
Where: platform/modules/authentication
IDENTITY_PROVIDER_BINDING_IDEMPOTENCY_CONFLICT · HTTP 409
Binding idempotency key was used for another request
Where: platform/modules/authentication
IDENTITY_PROVIDER_BINDING_INVALID · HTTP 400
Identity provider binding command is incomplete
Where: platform/modules/authentication
IDENTITY_PROVIDER_BINDING_NOT_FOUND · HTTP 404
Binding was not found
Where: platform/modules/authentication
IDENTITY_PROVIDER_BINDING_QUERY_INVALID · HTTP 400
Deployment is required
Where: platform/modules/authentication
IDENTITY_PROVIDER_BINDING_REVISION_CONFLICT · HTTP 409
Binding was changed by another operation
Where: platform/modules/authentication
IDENTITY_PROVIDER_BINDING_STATUS_INVALID · HTTP 400
Binding status change command is incomplete
Where: platform/modules/authentication
IDENTITY_REASON_INVALID · HTTP 400
Reason must be bounded and contain no credential material
Where: platform/modules/identity
IDENTITY_RESOLUTION_DENIED · HTTP 400
Identity could not be resolved
Where: platform/modules/identity
IDENTITY_SUBJECT_INVALID · HTTP 400
Identity provider subject must be 1-512 characters
Where: platform/modules/identity
IMPORT_AUDIT_NOT_VERIFIED · HTTP 400
Where: platform/modules/portability
IMPORT_INVALID · HTTP 400
The export could not be read as a zip
Where: platform/modules/portability
IMPORT_NEEDS_POSTGRES · HTTP 400
Importing a Claspine Atlas export needs PostgreSQL persistence (platform.persistence.type=postgres)
Where: platform/modules/portability
IMPORT_PRODUCT_EXISTS · HTTP 409
Where: platform/modules/portability
INTERRUPTED
SES send was interrupted · FCM send was interrupted · SNS send was interrupted · Twilio SMS send was interrupted
Where: platform/modules/notifications, platform/modules/payments
INVALID_ADDRESS
Invalid sender or recipient address
Where: platform/modules/notifications
INVALID_COMPOSITION · HTTP 400
Where: domain-packs/healthcare/backend
INVALID_HOST · HTTP 400
Host is invalid
Where: platform/modules/domains
INVALID_REQUEST
Stripe checkout needs success and cancel URLs · Stripe needs the order's product
Where: platform/modules/payments
INVESTIGATION_CANCEL_INVALID · HTTP 400
Investigation cancel command is incomplete
Where: domain-packs/healthcare/backend
INVESTIGATION_CANCELLED · HTTP 409
A cancelled investigation takes no result · A cancelled investigation cannot be changed
Where: domain-packs/healthcare/backend
INVESTIGATION_CONFLICT · HTTP 409
Investigation idempotency key conflicts with existing state
Where: domain-packs/healthcare/backend
INVESTIGATION_CREATE_INVALID · HTTP 400
Investigation creation command is incomplete
Where: domain-packs/healthcare/backend
INVESTIGATION_HAS_RESULT · HTTP 409
An investigation with a result cannot be cancelled; unlink the result first
Where: domain-packs/healthcare/backend
INVESTIGATION_IDEMPOTENCY_CONFLICT · HTTP 409
Investigation idempotency key was used for another request
Where: domain-packs/healthcare/backend
INVESTIGATION_LINK_INVALID · HTTP 400
Investigation link command is incomplete
Where: domain-packs/healthcare/backend
INVESTIGATION_NO_RESULT · HTTP 409
The investigation has no linked result
Where: domain-packs/healthcare/backend
INVESTIGATION_NOT_FOUND · HTTP 404
Investigation was not found
Where: domain-packs/healthcare/backend
INVESTIGATION_REVISION_CONFLICT · HTTP 409
Investigation was changed by another operation
Where: domain-packs/healthcare/backend
INVESTIGATION_UNLINK_INVALID · HTTP 400
Investigation unlink command is incomplete
Where: domain-packs/healthcare/backend
INVESTIGATION_UPDATE_INVALID · HTTP 400
Investigation update command is incomplete · The test name cannot be blank
Where: domain-packs/healthcare/backend
INVITE_NOT_FOUND · HTTP 404
Invitation not found · This invitation link is not valid · This invitation link is not valid, was already used, or has expired. Ask for a new one.
Where: spine/server
LAST_EXTERNAL_IDENTITY · HTTP 400
Last active identity cannot be revoked from an open account
Where: platform/modules/identity
LICENSE_NOT_ACTIVE · HTTP 409
This license is not active
Where: spine/server
LICENSE_NOT_CHANGEABLE · HTTP 409
Unknown or refunded license
Where: spine/server
LICENSE_NOT_FOUND · HTTP 404
License not found
Where: spine/server
LICENSE_NOTHING_TO_REFUND · HTTP 409
This license has no paid order to refund
Where: spine/server
LICENSE_SALES_CLOSED · HTTP 409
Self-hosted licenses cannot be bought online yet; contact Claspine sales · The payment provider returned no checkout page
Where: spine/server
LICENSE_TOKEN_LIMIT · HTTP 409
Where: spine/server
LICENSE_TOKEN_NOT_FOUND · HTTP 404
Token not found
Where: spine/server
LLM_BUDGET_EXCEEDED · HTTP 429
The project's monthly LLM token budget cannot cover this request
Where: spine/server
LLM_KEY_BUDGET_EXCEEDED · HTTP 429
This API key's monthly LLM token limit cannot cover this request
Where: spine/server
LLM_OUTPUT_INVALID · HTTP 503
The model returned output that does not match the intent's output type
Where: platform/backend, spine/server
LLM_REQUEST_REJECTED · HTTP 400
The LLM request was rejected
Where: platform/backend, spine/server
MANAGED_DOMAIN_COMMAND_INVALID · HTTP 400
Managed domain enrollment is incomplete · Managed domain operation is incomplete
Where: platform/modules/domains
MANAGED_DOMAIN_CONFLICT · HTTP 409
Domain binding is already managed · Domain binding or idempotency key is already registered
Where: platform/modules/domains
MANAGED_DOMAIN_IDEMPOTENCY_CONFLICT · HTTP 409
Idempotency key was used for another domain request
Where: platform/modules/domains
MANAGED_DOMAIN_LIFECYCLE_REQUIRED · HTTP 400
Custom domains must complete the managed DNS and certificate lifecycle
Where: platform/modules/domains
MANAGED_DOMAIN_NOT_FOUND · HTTP 404
Managed domain lifecycle was not found
Where: platform/modules/domains
MANAGED_DOMAIN_REVISION_CONFLICT · HTTP 409
Managed domain changed since it was read
Where: platform/modules/domains
MANAGED_SECRET_STORE_UNSUPPORTED · HTTP 400
Managed secret store is not configured
Where: platform/modules/credentials
MEMBER_NOT_FOUND · HTTP 404
Team member not found · You are not in this team
Where: spine/server
MEMBERSHIP_CONFLICT · HTTP 409
Membership scope or idempotency key conflicts with existing state
Where: platform/modules/memberships
MEMBERSHIP_ENROLLMENT_INVALID · HTTP 400
Membership enrollment command is incomplete · A membership starts ACTIVE or PENDING
Where: platform/modules/memberships
MEMBERSHIP_IDEMPOTENCY_CONFLICT · HTTP 409
Membership idempotency key was used for another request
Where: platform/modules/memberships
MEMBERSHIP_NOT_FOUND · HTTP 404
Membership was not found
Where: platform/modules/authorization, platform/modules/memberships
MEMBERSHIP_ORGANIZATION_INACTIVE · HTTP 400
Membership organization is not active
Where: platform/modules/memberships
MEMBERSHIP_PRODUCT_INACTIVE · HTTP 400
Membership product is not active
Where: platform/modules/memberships
MEMBERSHIP_REASON_INVALID · HTTP 400
Reason must be bounded and contain no credential material
Where: platform/modules/memberships
MEMBERSHIP_REVISION_CONFLICT · HTTP 409
Membership was changed by another operation
Where: platform/modules/memberships
MEMBERSHIP_SCOPE_CONFLICT · HTTP 409
Account already has a membership in this scope
Where: platform/modules/memberships
MEMBERSHIP_STATUS_CHANGE_INVALID · HTTP 400
Membership status change command is incomplete
Where: platform/modules/memberships
MESSAGE_TEMPLATE_LIMIT · HTTP 409
Where: spine/server
MESSAGING_NOT_AVAILABLE · HTTP 409
Direct messages need PostgreSQL or MongoDB persistence
Where: platform/modules/notifications
MOBILE_APPLICATION_IDENTITY_CONFLICT · HTTP 409
Application identity is already registered
Where: platform/modules/mobile
MOBILE_BUILD_NUMBER_CONFLICT · HTTP 409
Build number is already allocated
Where: platform/modules/releases
MOBILE_BUILD_SPEC_INVALID · HTTP 400
Where: platform/modules/releases
MOBILE_CREDENTIAL_PURPOSE_MISMATCH · HTTP 400
Credential reference has the wrong purpose · Credential has the wrong purpose
Where: platform/modules/mobile, platform/modules/releases
MOBILE_CREDENTIALS_INVALID · HTTP 400
Credential references are required · Credential role is invalid
Where: platform/modules/mobile
MOBILE_PLATFORM_UNSUPPORTED · HTTP 400
Product build adapter does not support target platform
Where: platform/modules/releases
MOBILE_PRODUCT_ADAPTER_INVALID · HTTP 400
Exactly one mobile product build adapter is required
Where: platform/modules/releases
MOBILE_RELEASE_COMMAND_INVALID · HTTP 400
Mobile release command is incomplete
Where: platform/modules/releases
MOBILE_RELEASE_CONFLICT · HTTP 409
Idempotency key or target build number already exists
Where: platform/modules/releases
MOBILE_RELEASE_NOT_FOUND · HTTP 404
Mobile release was not found
Where: platform/modules/releases
MOBILE_RELEASE_PLAN_INVALID · HTTP 400
Mobile release plan is incomplete
Where: platform/modules/releases
MOBILE_SIGNING_REFERENCE_REQUIRED · HTTP 400
Signing reference is required
Where: platform/modules/mobile
MOBILE_TARGET_INACTIVE · HTTP 400
Mobile target is inactive
Where: platform/modules/releases
MOBILE_TARGET_INVALID · HTTP 400
Mobile target command is incomplete
Where: platform/modules/mobile
MOBILE_TARGET_NOT_FOUND · HTTP 404
Mobile target was not found
Where: platform/modules/mobile
MOBILE_TARGET_ORGANIZATION_UNBOUND · HTTP 400
Organization is not bound to the deployment
Where: platform/modules/mobile
MOBILE_TARGET_SCOPE_INVALID · HTTP 400
Mobile target scope does not match deployment
Where: platform/modules/releases
MOBILE_TEST_GROUP_CONFLICT · HTTP 409
Test group alias is already registered
Where: platform/modules/mobile
MOBILE_TEST_GROUP_INVALID · HTTP 400
Test group command is incomplete
Where: platform/modules/mobile
MOBILE_TEST_GROUP_NOT_FOUND · HTTP 404
Mobile test group was not found
Where: platform/modules/mobile
MOBILE_TEST_GROUP_SCOPE_MISMATCH · HTTP 400
Test group is inactive or outside target
Where: platform/modules/releases
MODEL_ALIAS_NOT_FOUND
PAID intent has no model alias
Where: platform/modules/llm
NOT_COMPLIMENTARY · HTTP 409
This project has no complimentary plan
Where: spine/server
NOT_CONFIGURED
Stripe is not configured for this product
Where: platform/modules/payments
NOT_FOUND · HTTP 404
Not found · No account, project or license with that id
Where: platform/modules/payments, spine/server
NOTIFICATION_ATTEMPTS_EXHAUSTED
Notification delivery exhausted its attempts
Where: platform/modules/notifications
NOTIFICATION_COMPLETION_INVALID
Notification completion command is incomplete
Where: platform/modules/notifications
NOTIFICATION_CONFLICT · HTTP 409
Notification delivery or idempotency key conflicts with existing state
Where: platform/modules/notifications
NOTIFICATION_DEFINITION_NOT_FOUND · HTTP 400
Where: platform/modules/notifications
NOTIFICATION_DISPATCH_INVALID
Notification dispatch command is incomplete
Where: platform/modules/notifications
NOTIFICATION_ENDPOINT_INVALID
Endpoint registration command is required
Where: platform/modules/notifications
NOTIFICATION_IDEMPOTENCY_CONFLICT · HTTP 409
Notification idempotency key was used for another request
Where: platform/modules/notifications
NOTIFICATION_NOT_FOUND · HTTP 404
Notification delivery was not found
Where: platform/modules/notifications
NOTIFICATION_RECIPIENT_UNAVAILABLE
Notification recipient is unavailable in the exact scope
Where: platform/modules/notifications
NOTIFICATION_REQUEST_INVALID
Notification request is incomplete
Where: platform/modules/notifications
NOTIFICATION_REVISION_CONFLICT · HTTP 409
Notification delivery was changed by another operation
Where: platform/modules/notifications
NOTIFICATION_SEND_CONFLICT · HTTP 409
Notification send or idempotency key conflicts with existing state
Where: platform/modules/notifications
NOTIFICATION_SEND_IDEMPOTENCY_CONFLICT · HTTP 409
Notification send idempotency key was used for another request
Where: platform/modules/notifications
NOTIFICATION_SEND_INVALID · HTTP 400
Notification send command is incomplete
Where: platform/modules/notifications
NOTIFICATION_SEND_NOT_FOUND · HTTP 409
Notification send was not found for delivery linkage
Where: platform/modules/notifications
OBSERVATION_CONFLICT · HTTP 409
Observation idempotency key conflicts with existing state
Where: domain-packs/healthcare/backend
OBSERVATION_IDEMPOTENCY_CONFLICT · HTTP 409
Observation idempotency key was used for another request
Where: domain-packs/healthcare/backend
OBSERVATION_INVALID · HTTP 400
Observation command is incomplete
Where: domain-packs/healthcare/backend
OPERATION_APPROVAL_INVALID · HTTP 400
Where: platform/modules/provisioning
OPERATION_NOT_CANCELLABLE · HTTP 400
Terminal operation cannot be cancelled · Running operation has no external reference
Where: platform/modules/provisioning
OPERATION_NOT_EXECUTABLE · HTTP 400
Operation is not ready to execute
Where: platform/modules/provisioning
OPERATION_NOT_RECONCILABLE · HTTP 400
Operation has no running external execution
Where: platform/modules/provisioning
OPERATION_NOT_RETRYABLE · HTTP 400
Only retryable failures can be retried
Where: platform/modules/provisioning
OPERATION_REVISION_CONFLICT · HTTP 409
Operation changed since it was read
Where: platform/modules/provisioning
ORGANIZATION_INACTIVE · HTTP 400
Only active organizations can be bound · Only active organizations can be renamed
Where: platform/modules/deployments, platform/modules/organizations
ORGANIZATION_KEY_CONFLICT · HTTP 409
Organization key is already registered
Where: platform/modules/organizations
ORGANIZATION_NAME_INVALID · HTTP 400
Where: platform/modules/organizations
ORGANIZATION_NOT_BOUND · HTTP 400
Domain organization is not bound to the deployment · Organization is not active and bound to this deployment
Where: platform/modules/domains, platform/modules/provisioning
ORGANIZATION_NOT_FOUND · HTTP 404
Organization was not found
Where: platform/modules/organizations
ORGANIZATION_SCOPE_MISMATCH · HTTP 400
organizationId does not match the deployment of this host
Where: platform/backend
ORGANIZATION_SCOPE_UNSUPPORTED · HTTP 400
Claspine Atlas scopes data by project API key; organizationId is not supported
Where: spine/server
PATIENT_CONFLICT · HTTP 409
Patient identifier or idempotency key conflicts with existing state
Where: domain-packs/healthcare/backend
PATIENT_IDEMPOTENCY_CONFLICT · HTTP 409
Patient idempotency key was used for another request
Where: domain-packs/healthcare/backend
PATIENT_IDENTIFIER_CONFLICT · HTTP 409
Patient with this identifier already exists in the organization
Where: domain-packs/healthcare/backend
PATIENT_NOT_FOUND · HTTP 404
Patient was not found
Where: domain-packs/healthcare/backend
PATIENT_REGISTRATION_INVALID · HTTP 400
Patient registration command is incomplete
Where: domain-packs/healthcare/backend
PATIENT_REVISION_CONFLICT · HTTP 409
Patient was changed by another operation
Where: domain-packs/healthcare/backend
PATIENT_UPDATE_INVALID · HTTP 400
Patient update command is incomplete
Where: domain-packs/healthcare/backend
PAYMENT_CANCEL_UNAVAILABLE
Where: platform/modules/payments
PAYMENT_CONFLICT · HTTP 409
Payment order or idempotency key conflicts with existing state
Where: platform/modules/payments
PAYMENT_LATE_REFUND_FAILED
Where: platform/modules/payments
PAYMENT_MODE_REQUIRED
This product has test and live payment accounts; say which one to use
Where: platform/modules/payments
PAYMENT_PROVIDER_UNAVAILABLE
Payment provider is unavailable for order creation · Payment provider rejected order creation · Stripe returned no checkout URL · Stripe returned no portal URL
Where: platform/modules/payments
PAYMENT_REFUND_AMOUNT_INVALID
Where: platform/modules/payments
PAYMENT_REFUND_INVALID
Where: platform/modules/payments
PAYMENT_REVISION_CONFLICT · HTTP 409
Payment order revision does not match expected revision · Payment order was changed by another operation
Where: platform/modules/payments
PAYMENT_SCOPE_UNAVAILABLE
Payment scope is unavailable in the exact product context
Where: platform/modules/payments
PERMISSION_GRANT_CONFLICT · HTTP 409
Membership already has this permission grant · Permission grant or idempotency key conflicts with existing state · Membership permission grant or idempotency key conflicts with existing state
Where: platform/modules/authorization
PERMISSION_GRANT_IDEMPOTENCY_CONFLICT · HTTP 409
Permission grant idempotency key was used for another request
Where: platform/modules/authorization
PERMISSION_GRANT_INVALID · HTTP 400
Permission grant command is incomplete
Where: platform/modules/authorization
PERMISSION_GRANT_NOT_FOUND · HTTP 404
Permission grant was not found
Where: platform/modules/authorization
PERMISSION_GRANT_REVISION_CONFLICT · HTTP 409
Permission grant was changed by another operation
Where: platform/modules/authorization
PERMISSION_MEMBERSHIP_INACTIVE · HTTP 400
Permission membership is not active
Where: platform/modules/authorization
PERMISSION_REASON_INVALID · HTTP 400
Reason must be bounded and contain no credential material
Where: platform/modules/authorization
PERMISSION_RESTORE_INVALID · HTTP 400
Permission restore command is incomplete
Where: platform/modules/authorization
PERMISSION_REVOKE_INVALID · HTTP 400
Permission revoke command is incomplete
Where: platform/modules/authorization
PLAN_LIMIT_CONFLICT · HTTP 400
Remove custom domains above the target plan's limit before changing plans
Where: spine/server
PLAN_SALES_ONLY · HTTP 400
Enterprise is arranged with Claspine sales
Where: spine/server
PRESCRIPTION_APPROVE_INVALID · HTTP 400
Prescription approval command is incomplete
Where: domain-packs/healthcare/backend
PRESCRIPTION_CONFLICT · HTTP 409
Prescription idempotency key conflicts with existing state
Where: domain-packs/healthcare/backend
PRESCRIPTION_CREATE_INVALID · HTTP 400
Prescription creation command is incomplete · Prescription contains an empty medication
Where: domain-packs/healthcare/backend
PRESCRIPTION_IDEMPOTENCY_CONFLICT · HTTP 409
Prescription idempotency key was used for another request
Where: domain-packs/healthcare/backend
PRESCRIPTION_NOT_DRAFT · HTTP 409
Only draft prescriptions can be approved
Where: domain-packs/healthcare/backend
PRESCRIPTION_NOT_FOUND · HTTP 404
Prescription was not found
Where: domain-packs/healthcare/backend
PRESCRIPTION_REVISION_CONFLICT · HTTP 409
Prescription was changed by another operation
Where: domain-packs/healthcare/backend
PROBE_RATE_LIMITED · HTTP 429
Too many connection tests; wait a minute and retry
Where: spine/server
PRODUCT_DELIVERY_ADAPTER_UNAVAILABLE · HTTP 400
Exactly one product delivery adapter must support the deployment product
Where: platform/modules/provisioning
PRODUCT_DELIVERY_UNSUPPORTED · HTTP 400
Product delivery contract does not support this operation
Where: platform/modules/provisioning
PRODUCT_KEY_CONFLICT · HTTP 409
Product key is already registered
Where: platform/modules/products
PRODUCT_NOT_FOUND · HTTP 404
Product was not found
Where: platform/modules/products
PRODUCTION_APPROVAL_INVALID · HTTP 400
Where: platform/modules/releases
PRODUCTION_EXECUTION_FORBIDDEN
Phase 4 fake provider cannot target production · Sandbox GitHub Actions adapter cannot target production
Where: platform/modules/provisioning
PRODUCTION_PROMOTION_INVALID · HTTP 400
Where: platform/modules/releases
PRODUCTION_PROMOTION_NOT_REQUESTED · HTTP 400
Promotion has not been requested
Where: platform/modules/releases
PROJECT_DELETION_SCHEDULED · HTTP 409
The project is scheduled for deletion · The project is scheduled for deletion and is read-only; restore it to make changes · The project is already scheduled for deletion
Where: spine/server
PROJECT_LIMIT_REACHED · HTTP 409
Where: spine/server
PROJECT_NOT_ACTIVE · HTTP 409
Only an active project can be given a plan
Where: spine/server
PROJECT_NOT_FOUND · HTTP 404
Project not found
Where: spine/server
PROJECT_NOT_SCHEDULED_FOR_DELETION · HTTP 409
Only a project scheduled for deletion can be restored
Where: spine/server
PROJECT_SCOPE_MISMATCH · HTTP 400
productId does not match the API key's project
Where: spine/server
PROJECT_SLUG_CONFLICT · HTTP 409
Where: spine/server
PROVIDER_DISPATCH_FAILED
Provider dispatch failed
Where: platform/modules/provisioning
PROVIDER_ERROR
No embedding in Gemini response · SMTP server rejected the credentials · Razorpay create order returned no order id · Razorpay verify requires a gateway payment id
Where: platform/modules/llm, platform/modules/notifications, platform/modules/payments
PROVIDER_NOT_FOUND
Where: platform/modules/llm
PROVIDER_REJECTED
Where: platform/modules/payments
PROVISIONING_OPERATION_CONFLICT · HTTP 409
Idempotency key or active deployment operation already exists · Operation not found
Where: platform/modules/provisioning
PROVISIONING_OPERATION_NOT_FOUND · HTTP 404
Operation was not found
Where: platform/modules/provisioning
PROVISIONING_REQUEST_INVALID · HTTP 400
Request is incomplete · Provider key is invalid · Configuration summary must contain bounded non-sensitive values · Command is incomplete
Where: platform/modules/provisioning
PROVISIONING_STATE_AMBIGUOUS · HTTP 409
Latest successful deployment lifecycle action is ambiguous
Where: platform/modules/provisioning
QUEUE_ADD_INVALID · HTTP 400
Queue add command is incomplete
Where: domain-packs/healthcare/backend
QUEUE_CONFLICT · HTTP 409
Queue entry idempotency key conflicts with existing state
Where: domain-packs/healthcare/backend
QUEUE_IDEMPOTENCY_CONFLICT · HTTP 409
Queue entry idempotency key was used for another request
Where: domain-packs/healthcare/backend
QUEUE_NOT_FOUND · HTTP 404
Queue entry was not found
Where: domain-packs/healthcare/backend
QUEUE_REMOVE_INVALID · HTTP 400
Queue remove command is incomplete
Where: domain-packs/healthcare/backend
QUEUE_REVISION_CONFLICT · HTTP 409
Queue entry was changed by another operation
Where: domain-packs/healthcare/backend
QUEUE_STATUS_INVALID · HTTP 400
Queue status command is incomplete
Where: domain-packs/healthcare/backend
RELEASE_REVISION_CONFLICT · HTTP 409
Release changed since it was read
Where: platform/modules/releases
ROBOT_CHECK_FAILED · HTTP 403
The robot check failed
Where: platform/modules/authentication
ROBOT_CHECK_UNAVAILABLE · HTTP 503
The robot check could not be verified; try again shortly
Where: platform/modules/authentication
ROLLBACK_NOT_STAGED · HTTP 400
Only a staged rollout can be halted
Where: platform/modules/releases
ROLLOUT_NOT_PROGRESSIVE · HTTP 400
Staged rollout must increase its percentage
Where: platform/modules/releases
SANDBOX_GATEWAY_DISABLED
Sandbox workflow dispatch is disabled until an explicitly configured gateway is installed
Where: platform/modules/provisioning
SANDBOX_REFUSED
Where: platform/modules/payments
SECRET_REFERENCE_CONFLICT · HTTP 409
Managed secret locator is already registered
Where: platform/modules/credentials
SECRET_REFERENCE_EXPIRED · HTTP 400
Secret reference has expired
Where: platform/modules/credentials
SECRET_REFERENCE_EXPIRY_INVALID · HTTP 400
Secret reference expiry must be in the future
Where: platform/modules/credentials
SECRET_REFERENCE_INACTIVE · HTTP 400
Secret reference is not active
Where: platform/modules/credentials
SECRET_REFERENCE_INVALID · HTTP 400
Secret reference command is incomplete
Where: platform/modules/credentials
SECRET_REFERENCE_NOT_FOUND · HTTP 404
Secret reference was not found
Where: platform/modules/credentials
SECRET_REFERENCE_OPERATION_FORBIDDEN · HTTP 400
Secret reference does not allow this operation
Where: platform/modules/credentials
SECRET_REFERENCE_REQUIRED
Sandbox GitHub Actions adapter requires a secret reference
Where: platform/modules/provisioning
SECRET_REFERENCE_REVOCATION_INVALID · HTTP 400
Secret reference revocation command is incomplete
Where: platform/modules/credentials
SECRET_REFERENCE_ROTATION_INVALID · HTTP 400
Secret reference rotation command is incomplete
Where: platform/modules/credentials
SECRET_REFERENCE_SCOPE_MISMATCH · HTTP 400
Secret reference is outside the requested scope
Where: platform/modules/credentials
SECRET_REFERENCE_UNAVAILABLE · HTTP 400
Fake managed-store references must use the sandbox namespace · Google Secret Manager locator must be 'projects/{project}/secrets/{secret}[/versions/{version}]' · Secret validation was interrupted
Where: platform/modules/credentials
SERVER_ERROR
Stripe could not be reached
Where: platform/modules/llm, platform/modules/notifications, platform/modules/payments
SERVICE_KEY_REQUIRED · HTTP 401
A service key (X-Spine-Api-Key) is required
Where: platform/foundation
SESSION_CONFLICT · HTTP 409
Session token digest conflicts with existing state · Session identity conflicts with existing state
Where: platform/modules/authentication
SESSION_NOT_FOUND · HTTP 404
Session was not found
Where: platform/modules/authentication
SESSION_QUERY_INVALID · HTTP 400
Account is required
Where: platform/modules/authentication
SESSION_REASON_INVALID · HTTP 400
Reason must be bounded and contain no credential material
Where: platform/modules/authentication
SESSION_REFRESH_INVALID · HTTP 400
Session refresh command is incomplete
Where: platform/modules/authentication
SESSION_REVISION_CONFLICT · HTTP 409
Session was changed by another operation
Where: platform/modules/authentication
SESSION_REVOCATION_INVALID · HTTP 400
Session revocation command is incomplete · Account session revocation command is incomplete
Where: platform/modules/authentication
STARTER_NOT_FOUND · HTTP 404
Starter not found
Where: spine/server
STORAGE_INVALID · HTTP 400
Where: spine/server
STORAGE_NOT_CONFIGURED · HTTP 404
No bucket is connected
Where: spine/server
STORE_PLATFORM_MISMATCH · HTTP 400
Store provider does not support target platform
Where: platform/modules/releases
STORE_PROVIDER_UNSUPPORTED · HTTP 400
Store provider is not configured
Where: platform/modules/releases
STRUCTURED_OUTPUT_PARSE_FAILED
Where: platform/modules/llm
SUBSCRIPTION_ACTIVE · HTTP 409
This project pays for its plan; its owner cancels the subscription first
Where: spine/server
SUBSCRIPTION_ALREADY_ACTIVE · HTTP 409
This subject already has a live subscription; change its price instead
Where: platform/modules/payments
SUBSCRIPTION_CONFLICT · HTTP 409
Subscription is already recorded
Where: platform/modules/payments
SUBSCRIPTION_NOT_FOUND · HTTP 404
No subscription for this subject · This subject has no live subscription
Where: platform/backend, platform/modules/payments
SUBSCRIPTION_PAYMENT_FAILED
Where: platform/modules/payments
SUBSCRIPTION_PRICE_UNKNOWN
Where: platform/modules/payments
SUBSCRIPTION_REVISION_CONFLICT · HTTP 409
Subscription was changed by another operation
Where: platform/modules/payments
TEAM_FULL · HTTP 409
Where: spine/server
TEST_DISTRIBUTION_PROVIDER_UNSUPPORTED · HTTP 400
Test provider is not configured
Where: platform/modules/releases
TEST_GROUP_SCOPE_MISMATCH
Test group is outside the mobile target
Where: platform/modules/releases
TEST_RECIPIENT_CODE_EXPIRED · HTTP 409
The code expired; remove the address and add it again
Where: spine/server
TEST_RECIPIENT_EXISTS · HTTP 409
This address is already a test recipient · This number is already a test recipient
Where: spine/server
TEST_RECIPIENT_LIMIT · HTTP 409
Where: spine/server
TEST_RECIPIENT_NOT_FOUND · HTTP 404
No such test recipient
Where: spine/server
TIER_EXHAUSTED
Where: platform/modules/llm
TIMELINE_ADD_INVALID · HTTP 400
Timeline entry command is incomplete
Where: domain-packs/healthcare/backend
TIMELINE_CONFLICT · HTTP 409
Timeline entry idempotency key conflicts with existing state
Where: domain-packs/healthcare/backend
TIMELINE_IDEMPOTENCY_CONFLICT · HTTP 409
Timeline idempotency key was used for another request
Where: domain-packs/healthcare/backend
VAULT_CREDENTIAL_NOT_FOUND · HTTP 404
No credential is stored for this provider
Where: spine/server
WHATSAPP_TEMPLATE_NOT_DELETED · HTTP 409
Where: spine/server
WHATSAPP_TEMPLATE_REJECTED · HTTP 409
Where: spine/server
WHITE_LABEL_ORGANIZATION_REQUIRED · HTTP 400
White-label mobile targets require an organization · White-label provisioning requires an organization bound to the deployment
Where: platform/modules/mobile, platform/modules/provisioning