DomainRuntimedocs
Reference
VerifiedWhat works todayReviewed 2026-09-23

Errors

Every error has a stable code. Branch on the code, not the message.

{ "ok": false, "error": "environment_not_found" }

Codes are stable; messages may change. Runtime codes use snake_case. Codes from the query engine use kebab-case.

Calling actions

CodeStatusMeaningDo
execution_envelope_invalid400the body is not { requestId, input }, or requestId is not a UUIDfix the request
action_contract_validation_failed400the input does not match the action's schema; your code did not runfix the input
action_not_found404no action with that id in the active releasecheck the id; publish the domain
access_denied403you may not run this action or see its execution
environment_release_missing409the environment has no active release yetpublish a domain
REQUEST_CONFLICT409this request id was already used for another action or inputuse a new request id for a new call
CONTRACT_MISMATCH409the contract hash you sent does not match the active releasereload the contract
execution_result_timeout504the action did not finish within 110 s; it may still finishfollow GET /executions/{id}
execution_total_file_size_exceeded · execution_file_limit_exceeded400file inputs over 128 MiB in total, or more than 16 files
execution_file_digest_mismatch422a file's content did not match its declared checksumupload it again
execution_not_found · run_not_found404no execution or run with that id, or not yours

Inside an execution

These do not come back as an HTTP error: the call answers 200 and the execution carries the code.

CodeMeaning
action_failedyour execute threw; the execution holds your message, up to 1000 characters
execution_output_invalidyour action returned something that does not match output; writes it made stay
workflow_faileda workflow run failed or was cancelled

Authentication

CodeStatusMeaningDo
invalid_credentials401the token or key is missing, expired or revokedsign in again, or mint a new user token
organization_access_denied403the caller is not a member of the environment's organizationcheck the organization and key
session_access_deniedWebSocket close 4401 / 4403the live-query socket's token is not valid for this environmentmint a token for this environment

Environments

CodeStatusMeaningDo
environment_not_found404no environment with that handle, or not visible to youcheck the handle and organization
environment_release_unavailable502the active release could not be loadedretry
catalog_migration_required409the organization still uses the previous project modelmigrate it in the console
managed_build_required410direct publishing is not allowed on this environmentrelease it instead
schema_change_refused409the stored data does not allow a schema change; details.issues lists each one; nothing was appliedfix the data or the schema; see Changing the schema
removal_unconfirmed409the publish removes something the domain declaredconfirm with druntime push --yes or --delete <name>
development_workflow_adapter_unavailable409workflow actions are not available in development yettest the workflow in a production release

Queries and writes

TypeStatusMeaning
permission-denied400a permission rule rejected the write
validation-failed400the query or write is malformed
record-not-unique400a write would give two objects the same value of a .unique() attribute
rate-limited429this environment is blocked from further requests; contact us
timeout429the query ran longer than 30 s; add an index or narrow it
result-too-large—a live query result exceeded 8 MiB; paginate it

Over HTTP (POST /query) these arrive as { "ok": false, "error": "data_provider_rejected" } with the status above. On the live-query socket they arrive as an error frame with the type.

Files

CodeStatusMeaning
storage_body_invalid400the signed-upload-url request is not a JSON object
storage_body_too_large400the signed-upload-url request is over 1 MiB

From the Platform SDK

The Platform SDK throws PlatformApiError with status, and today the code in message.

On this page