cyoda error reference
cyoda-go version 0.6.2
errors β error model and code catalogue.
SYNOPSIS
Section titled βSYNOPSISβREST responses use RFC 9457 Problem Details:
{ "type": "about:blank", "title": "Not Found", "status": 404, "detail": "ENTITY_NOT_FOUND: entity id=abc not found", "instance": "/api/v1/entities/abc", "properties": { "errorCode": "ENTITY_NOT_FOUND", "retryable": false }}gRPC error envelope example (returned in the CloudEvent response payload):
{ "error": { "code": "ENTITY_NOT_FOUND", "message": "entity id=abc not found", "retryable": false }}The gRPC response also carries errorCode and retryable in trailer metadata.
DESCRIPTION
Section titled βDESCRIPTIONβEvery error response from the Cyoda REST API carries a structured errorCode in the properties object. Multiple codes may share the same HTTP status. Programmatic handling keys on errorCode, not HTTP status.
The retryable property is present and true only when the operation is safe to retry as-is (e.g., transient cluster conditions). When absent or false, the request or system state must change before retrying.
5xx responses include a ticket UUID for server-side log correlation. Share this value when reporting issues.
CYODA_ERROR_RESPONSE_MODE controls 5xx detail level. sanitized (default): generic message plus ticket UUID. verbose: internal error detail included in the response body; intended for development environments only.
ERROR CODE INDEX
Section titled βERROR CODE INDEXβerrors.BAD_REQUESTβ400β not retryable β request body, query parameter, or header is malformed or structurally invaliderrors.CLUSTER_NODE_NOT_REGISTEREDβ503β retryable β target cluster node is not present in the gossip registryerrors.COMPUTE_MEMBER_DISCONNECTEDβ503β retryable β compute member holding a processor assignment has disconnectederrors.CONFLICTβ409β retryable β optimistic concurrency check failed; entity was modified concurrentlyerrors.DISPATCH_FORWARD_FAILEDβ503β retryable β HTTP forwarding call to peer node failederrors.DISPATCH_TIMEOUTβ503β retryable (see note) β compute member did not respond within the dispatch timeout; completion on the remote node is not guaranteederrors.ENTITY_NOT_FOUNDβ404β not retryable β entity UUID does not exist or is not accessible to the callererrors.EPOCH_MISMATCHβ409β retryable β writing nodeβs cached shard epoch is stale; another node has since taken ownershiperrors.FORBIDDENβ403β not retryable β authenticated caller lacks the required role or the tenant does not matcherrors.HELP_TOPIC_NOT_FOUNDβ404β not retryable β help topic path does not resolve to any topic in the treeerrors.IDEMPOTENCY_CONFLICTβ409β not retryable β request with the same idempotency key was received but payload differs from the originalerrors.MODEL_NOT_FOUNDβ404β not retryable β referenced entity model does not exist in the tenantβs model registryerrors.MODEL_NOT_LOCKEDβ409β not retryable β model exists but is not inLOCKEDstate; entity writes require a locked modelerrors.NO_COMPUTE_MEMBER_FOR_TAGβ503β retryable β no live cluster node advertises the compute tag required by the processorerrors.NOT_IMPLEMENTEDβ501β not retryable β endpoint is defined but has no functional implementation in this versionerrors.POLYMORPHIC_SLOTβ400β not retryable β payload discriminator selects an unrecognised variant or fails the variant schemaerrors.SEARCH_JOB_ALREADY_TERMINALβ409β not retryable β operation attempted on a search job that has already completed, failed, or been cancellederrors.SEARCH_JOB_NOT_FOUNDβ404β not retryable β referenced search job does not exist in the current tenanterrors.SEARCH_RESULT_LIMITβ400β not retryable β search query matched more results than the server-enforced maximumerrors.SEARCH_SHARD_TIMEOUTβ503β retryable β one or more search shards did not respond within the configured timeouterrors.SERVER_ERRORβ500β retryable with caution β unclassified internal error; response includesticketUUID for log correlationerrors.TRANSACTION_EXPIREDβ400β not retryable β transaction tokenβsexpclaim is in the pasterrors.TRANSACTION_NODE_UNAVAILABLEβ503β retryable β cluster node that owns the open transaction is unreachableerrors.TRANSACTION_NOT_FOUNDβ404β not retryable β transaction ID does not correspond to an active transaction on this nodeerrors.TRANSITION_NOT_FOUNDβ404β not retryable β requested workflow transition is not defined for the entityβs current stateerrors.TX_CONFLICTβ409β retryable β transaction aborted due to storage-level serialization conflicterrors.TX_COORDINATOR_NOT_CONFIGUREDβ503β not retryable β distributed transaction coordinator is disabled or misconfigured on this nodeerrors.TX_NO_STATEβ404β not retryable β coordinator has no state record for the given transaction IDerrors.TX_REQUIREDβ400β not retryable β operation requires a transaction context but none was providederrors.UNAUTHORIZEDβ401β not retryable βAuthorizationheader is missing, token is expired, signature is invalid, or issuer is untrustederrors.VALIDATION_FAILEDβ400β not retryable β payload is structurally valid JSON but fails the modelβs schema or workflow validation ruleserrors.WORKFLOW_FAILEDβ400β not retryable β workflow processor or guard condition returned a failure during state transitionerrors.WORKFLOW_NOT_FOUNDβ404β not retryable β workflow definition referenced by the entity model does not exist
SEE ALSO
Section titled βSEE ALSOβ- openapi
- grpc
- config
Subtopics
Section titled βSubtopicsβcyoda help errors BAD_REQUESTβ Fired when the server cannot parse or structurally process the incoming request. Common triggers include invalid JSON, missing required fields, unsupported format specifiers, or mutually exclusive parameters being set simultaneously.cyoda help errors CLUSTER_NODE_NOT_REGISTEREDβ The request was routed to or requires a specific cluster node that is not present in the registry. Occurs during startup, rolling restarts, or after a node failure before the gossip layer has converged.cyoda help errors COMPUTE_MEMBER_DISCONNECTEDβ The compute member responsible for executing a processor or workflow step disconnected before completing the operation. The task may or may not have been executed.cyoda help errors CONFLICTβ The server detected that the entity was modified by another writer between the time it was read and the time the current write was committed. Normal outcome under concurrent load.cyoda help errors DISPATCH_FORWARD_FAILEDβ The cluster dispatcher attempted to forward a processor invocation or criteria evaluation to a peer node but the HTTP call to that peer failed (network error, peer crash, or connection refused). The operation has not been executed on the target node.cyoda help errors DISPATCH_TIMEOUTβ A workflow processor or criteria evaluation was dispatched to a compute member but the response did not arrive within the dispatch timeout window. The underlying task may or may not have completed on the remote node.cyoda help errors ENTITY_NOT_FOUNDβ No entity with the given ID exists in the tenantβs data store, or the entity existed at a point-in-time that precedes the requested snapshot. Also returned for audit log lookups when the specified event or message cannot be found.cyoda help errors EPOCH_MISMATCHβ Shard ownership is tracked by an epoch counter that increments whenever the cluster re-partitions. A write is rejected with this error when the writing nodeβs cached epoch is stale β another node has since taken ownership of the shard. This prevents split-brain writes.cyoda help errors FORBIDDENβ The request was authenticated successfully but the callerβs JWT claims do not include the role required by the endpoint (for example,adminis required for administrative operations). Tenant mismatch β where the callerβs tenant does not match the resource β also produces this error.cyoda help errors HELP_TOPIC_NOT_FOUNDβ Returned byGET {ContextPath}/help/{topic}when{topic}is well-formed (matches[A-Za-z0-9._-]+) but does not resolve to any topic in the tree. Clients shouldGET {ContextPath}/helpto discover available topic paths.cyoda help errors IDEMPOTENCY_CONFLICTβ The idempotency key is supplied via theIdempotency-KeyHTTP header on collection create and update requests. Seecrudfor the request shape.cyoda help errors MODEL_NOT_FOUNDβ The entity type or model name specified in the request does not exist in the tenantβs model registry. Occurs when creating entities with an unknown type, importing data that references a missing model, or performing model lifecycle transitions on a model ID that does not exist.cyoda help errors MODEL_NOT_LOCKEDβ Entity creation and bulk write operations require the model to be in theLOCKEDlifecycle state. Models inDRAFTor unlocked-for-editing state reject writes to prevent schema changes from affecting in-flight data.cyoda help errors NOT_IMPLEMENTEDβ The route is defined and accepted by the server but the handler returns this error because the feature is pending implementation. Distinct from a404β the endpoint exists without a functional implementation.cyoda help errors NO_COMPUTE_MEMBER_FOR_TAGβ Workflow processors are dispatched to nodes that advertise matching compute tags. When no node with the required tag is alive in the cluster within the configured wait timeout (CYODA_DISPATCH_WAIT_TIMEOUT), the operation is rejected with this error.cyoda help errors POLYMORPHIC_SLOTβ A model can define polymorphic slots β fields whose schema varies based on a discriminator value. This error fires when the payloadβs discriminator selects a variant whose schema the provided data fails to match, or when the discriminator value itself is unrecognised.cyoda help errors SEARCH_JOB_ALREADY_TERMINALβ Search jobs are long-running asynchronous operations. Once a job reaches a terminal state it cannot be cancelled, resumed, or otherwise modified. This error is returned when such an operation is attempted on a finished job.cyoda help errors SEARCH_JOB_NOT_FOUNDβ Polling a search job by ID returns this error when the job ID is unknown or belongs to a different tenant. Jobs are tenant-scoped; a valid job ID from one tenant is not visible to another.cyoda help errors SEARCH_RESULT_LIMITβ The server imposes an upper bound on the number of results returned per page and per job to protect cluster resources. Returned when the request exceeds this limit β either by requesting too large a page size or by the matched result count exceeding the cap.cyoda help errors SEARCH_SHARD_TIMEOUTβ Distributed search fans out to multiple shards in parallel. If any shard does not return results before the search timeout expires, the job is marked failed and this error is returned. Occurs under high load, during partial cluster degradation, or with expensive queries.cyoda help errors SERVER_ERRORβ The server encountered an unclassified internal error. The response body contains aticketUUID that correlates with the server-side error log. No internal details are exposed in the response.cyoda help errors TRANSACTION_EXPIREDβ Transaction tokens are short-lived bearer tokens issued when a transaction is opened. This error fires when the tokenβsexpclaim is in the past at the time the proxy validates it. The transaction itself may still be active server-side, but the token is no longer valid for routing.cyoda help errors TRANSACTION_NODE_UNAVAILABLEβ Transaction state is pinned to the node that opened it. If that node crashes or becomes unreachable while the transaction is in progress, subsequent requests using the transaction token are rejected with this error because the proxy cannot forward them to the owner.cyoda help errors TRANSACTION_NOT_FOUNDβ The transaction ID supplied in the request does not correspond to an active transaction. The transaction may have been committed, rolled back, expired, or may never have existed. Also occurs when a request is mis-routed to a node that never opened the transaction.cyoda help errors TRANSITION_NOT_FOUNDβ Entity workflow state machines define explicit transitions between states. This error fires when a transition is triggered that does not exist in the modelβs workflow definition for the entityβs current state. Also occurs when the transition name is misspelled or when the entity is in a terminal state that allows no further transitions.cyoda help errors TX_CONFLICTβ The underlying storage detected a serialization failure (e.g., PostgreSQL error 40001 or 40P01) and aborted the transaction. Normal occurrence under concurrent write load when using serializable or repeatable-read isolation.cyoda help errors TX_COORDINATOR_NOT_CONFIGUREDβ Certain operations that span multiple storage shards require a distributed transaction coordinator. This error is returned when such an operation is attempted on a node where the coordinator component is disabled or misconfigured.cyoda help errors TX_NO_STATEβ The two-phase commit coordinator tracks per-transaction state (prepared, committed, aborted). This error is returned when a commit or abort instruction references a transaction for which no state record exists, because the transaction was never prepared or was already cleaned up.cyoda help errors TX_REQUIREDβ Certain write operations that require atomic multi-step coordination mandate a transaction context. Returned when such an operation is called without atransactionIdheader or query parameter.cyoda help errors UNAUTHORIZEDβ Returned when theAuthorizationheader is missing, the bearer token is expired, the token signature is invalid, or the token was issued by an untrusted issuer. Also returned when a request reaches a protected route with no identity context established by the auth middleware.cyoda help errors VALIDATION_FAILEDβ UnlikeBAD_REQUEST(which covers parse failures), this error is returned when the payload is parseable but violates the registered model schema β for example, a required field is missing, a value is out of the allowed range, or a workflow guard condition is not satisfied. The error detail includes the specific validation failure.cyoda help errors WORKFLOW_FAILEDβ During an entity create or transition operation the associated workflow processors (pre-processors, post-processors) or guard conditions ran but one of them signalled failure. The failure message from the processor is included in the error detail.cyoda help errors WORKFLOW_NOT_FOUNDβ Entity models reference a workflow by name to govern state transitions. This error is returned when the named workflow cannot be found in the tenantβs workflow registry, during entity type registration or when a model references a workflow that was deleted.
See also
Section titled βSee alsoβcyoda help openapiβ cyoda-go generates its OpenAPI 3.1 specification from the embeddedapi/openapi.yamlfile compiled into the binary at build time. The spec is served at/openapi.jsonwith runtime-patched server URLs. The Scalar API Reference UI is served at/docsand loads the spec from/openapi.json.cyoda help grpcβ cyoda-go exposes one gRPC service:CloudEventsService(packageorg.cyoda.cloud.api.grpc). All gRPC methods use the CloudEvents Protobuf envelope (io.cloudevents.v1.CloudEvent) as both request and response types. The event type string in the CloudEvent envelope selects the operation; the JSON payload intext_data(orbinary_data) carries the operation-specific body.cyoda help configβ Environment variables beat default values. The_FILEsuffix variant takes precedence over the plain variable when both are set β for example,CYODA_POSTGRES_URL_FILE=/etc/secrets/db-urlwins overCYODA_POSTGRES_URL. There are no command-line flags for configuration values; env vars are the sole configuration surface.
Raw formats
Section titled βRaw formatsβ/help/errors.jsonβ full descriptor (matchesGET /help/{topic}envelope)/help/errors.mdβ body only