Skip to content
For LLMsView as Markdown·

Error reference ​

This page lists every code in the OneHazel error registry: 193 codes (131 you can receive as an API customer, 54 internal, 8 log markers or reserved). It is generated from the registry, and a CI test fails if the two drift apart.

Response shape ​

Errors come back as JSON with a machine-readable code and a human-readable message. Branch on code, never on message: messages can change, codes do not change without notice (see the deprecation policy).

json
{
  "success": false,
  "error": { "code": "RATE_LIMITED", "message": "Rate limit exceeded" }
}

Some endpoints use "ok": false instead of "success": false, and some add fields next to code (for example existingId, retryAfter, details). MCP errors arrive as JSON-RPC error objects with the OneHazel code in error.data.code.

Retry guidance ​

LabelWhat to do
Retryable with backoffTransient server-side failure. Retry with exponential backoff and jitter.
Retryable after the stated waitWait for the interval the response gives (Retry-After header, retryAfter field, or retryAfterSeconds), then retry.
Retry once the in-flight operation finishesAnother operation holds the resource. Retry after it completes.
Terminal: change the requestRetrying the same request will fail the same way. Fix the cause first.
Check state before retryingThe outcome is uncertain. Read the current state before deciding to retry.

A worked backoff example is on the rate limits page.

Authentication and access ​

CodeHTTPRetryMeaningWhat to do
AUTH_MISSING401Terminal: change the requestNo Authorization: Bearer ... header was sent.Send your API key or session token as a bearer token.
AUTH_INVALID_FORMAT401Terminal: change the requestThe bearer value is not a recognised key format. API keys start with oh_live_.Check that the whole key was copied.
AUTH_INVALID401Terminal: change the requestThe API key or session token was not recognised.Check the key. Create a new key if it was lost.
AUTH_REVOKED401Terminal: change the requestThe API key has been revoked.Use an active key.
MEMBER_ACCESS_REVOKED403Terminal: change the requestYour membership of this organisation has been suspended.Ask your organisation owner to restore access.
AUTH_ERROR401Terminal: change the requestAn authentication step failed. The message says which.Sign in again, then retry.
FORBIDDEN403Terminal: change the requestAuthenticated, but not allowed to do this (for example an owner or admin only action).Use an account with the required role.
UNAUTHORIZED401Terminal: change the requestAuthentication failed for this API.Check the key and the Authorization header.
AUTH_WRONG_TYPE401Terminal: change the requestThis endpoint needs a different credential type, for example a signed-in session instead of an API key.Use the credential type the endpoint documents.
AUTH_NO_PROFILE403Terminal: change the requestThe signed-in user has no OneHazel profile.Finish sign-up, or contact support.
AUTH_PENDING403Terminal: change the requestThe account is waiting for approval.Wait for approval, then sign in again.
AUTH_SUSPENDED403Terminal: change the requestThe account is suspended.Contact support.

Rate limits and quota ​

CodeHTTPRetryMeaningWhat to do
RATE_LIMITED429Retryable after the stated waitToo many requests in the current one-minute window for this bucket.Wait until the window resets. See Rate limits.
QUOTA_EXCEEDED402Terminal: change the requestThe monthly usage quota for your plan (Actions or AI Actions) is used up.Upgrade your plan, or wait for the monthly reset.

Not found ​

CodeHTTPRetryMeaningWhat to do
NOT_FOUND404Terminal: change the requestThe resource does not exist, or it belongs to another account.Check the id.
CONNECTION_NOT_FOUND404Terminal: change the requestNo connection with that id in your account.Check the connection id.
CONNECTOR_NOT_FOUND404Terminal: change the requestNo connector with that key.Check the connector key.
ENTITY_NOT_FOUND404Terminal: change the requestNo entity with that external id.Create the entity first, or check the external id.
WEBHOOK_NOT_FOUND404Terminal: change the requestNo webhook subscription with that id in your account.Check the subscription id.
WORKFLOW_NOT_FOUND404Terminal: change the requestNo workflow with that id in your account.Check the workflow id.
OPERATION_NOT_FOUND404Terminal: change the requestThe connector has no endpoint matching the requested operation.Check the operation name against the connector's endpoints.
VERSION_NOT_FOUND404Terminal: change the requestThe connector version does not exist or does not belong to this connection's connector.Check the version id.
BLUEPRINT_NOT_FOUND404Terminal: change the requestThe connector definition was not found.Check the connector id.

Request validation ​

CodeHTTPRetryMeaningWhat to do
MISSING_FIELDS400Terminal: change the requestOne or more required fields are missing.Add the fields named in the message.
INVALID_INPUT400Terminal: change the requestA field has an invalid value.Fix the field named in the message.
VALIDATION_FAILED400Terminal: change the requestThe data failed validation (for ingest, against your data template).Fix the fields named in the message.
VALIDATION_ERROR400Terminal: change the requestThe request body failed validation.Fix the fields named in the message.
METHOD_NOT_ALLOWED405Terminal: change the requestThe HTTP method is not supported on this path.Use the method the endpoint documents.
BAD_REQUEST400Terminal: change the requestThe request is malformed.Fix the request as described in the message.
INVALID_VISIBILITY400Terminal: change the requestThe visibility value is not allowed here.Use a supported visibility value.
INVALID_RESOURCE_TYPE400Terminal: change the requestThe resource type must be one of connection, connector, workflow.Use a supported type.
INVALID_FAVORITE_PATH400Terminal: change the requestA favourite path must be a non-empty string of at most 200 characters.Shorten or fix the path.
MISSING_FIELD400Terminal: change the requestA required field is missing.Add the field named in the message.
INVALID_PARAMS400Terminal: change the requestThe affiliate tag sent parameters that are not allowed for this operator.Send only the attribution keys configured for your account.
INVALID_OPERATOR_ID400Terminal: change the requestThe operator id must match ^op_[a-zA-Z0-9_]+$.Check the operator id in your tag snippet.
INVALID_ANON_ID400Terminal: change the requestThe tag's anonymous id must be a UUID.Do not modify the anonymous id the tag generates.

Conflicts and resource state ​

CodeHTTPRetryMeaningWhat to do
NO_ACTIVE_VERSION409Terminal: change the requestThe connector has no active version, so you cannot subscribe.Try again later, or contact support.
INVALID_VERSION409Terminal: change the requestThe target version is not active.Pick an active version.
DUPLICATE_CONNECTION409Terminal: change the requestA connection with the same credentials already exists. existingId names it.Update the existing connection instead.
DUPLICATE_CONNECTOR409Terminal: change the requestA matching connector exists but cannot be reused.Build a fresh connector.
CLONE_DUPLICATES_EXISTING409Terminal: change the requestA connection with these credentials already exists, so the clone would duplicate it.Use different credentials for the clone, or restore the existing one from Trash.
CLONE_DUPLICATE_NAME409Terminal: change the requestYou already have a connection with that name.Pick a different name.
CLONE_NO_CREDENTIALS409Terminal: change the requestThe connector takes no credentials, so a copy would be identical to the original.Use the existing connection.
CLONE_CONNECTOR_UNAVAILABLE409Terminal: change the requestThe connector is withdrawn or your subscription to it has lapsed. The existing connection keeps working.Restore the subscription before cloning.
CLONE_AVAILABILITY_CHECK_FAILED500Retryable with backoffWe could not check whether the connector is available, so the clone was refused.Retry with exponential backoff. Contact support with the request id if it persists.
ALREADY_REGISTERED409Terminal: change the requestThis user is already registered.Sign in instead.
BUILD_IN_PROGRESS409Retry once the in-flight operation finishesA build for this connector is already pending or running.Wait for it to finish before starting another.
DRIFT_IN_PROGRESS409Retry once the in-flight operation finishesAn update for this connector is already in progress.Wait for it to finish.
CONNECTION_IN_USE409Terminal: change the requestThe connection is used by active workflows (listed in workflows).Deactivate or edit those workflows first.
CONNECTION_INACTIVE400Terminal: change the requestThe connection is not active.Activate the connection, then retry.
IS_DELETED409Terminal: change the requestThe resource is in Trash.Restore it first.
NOT_TOMBSTONED400Terminal: change the requestThe connection is not in Trash, so there is nothing to restore.No action needed.
NOT_DELETED409Terminal: change the requestThe subscription is not deleted, so there is nothing to restore.No action needed.
RESTORE_WINDOW_EXPIRED410Terminal: change the requestThe restore window has passed.Create the resource again.
PROMOTED_TO_PUBLIC410Terminal: change the requestThe private connector has since been published to the public catalogue.Use the public connector.
BLUEPRINT_UNAVAILABLE409Terminal: change the requestThe connector is no longer available for this action.Choose another connector, or contact support.
VERSION_MISMATCH409Terminal: change the requestThe target version belongs to a different connector.Pick a version of the same connector.
NO_DOCS_URL400Terminal: change the requestThe connector has no documentation URL to rebuild from.Contact support.
INVALID_NAME400Terminal: change the requestThe MCP prompt name is not valid.Fix the name as described in the message.
DUPLICATE_PROMPT409Terminal: change the requestAn MCP prompt with that name already exists.Use a different name.
MCP_PROMPTS_QUOTA_EXCEEDED400Terminal: change the requestYou have reached the cap on MCP prompts.Delete unused prompts before creating new ones.

Gateway and provider calls ​

CodeHTTPRetryMeaningWhat to do
BLUEPRINT_NO_SPEC400Terminal: change the requestThe connector has no OpenAPI spec.Contact support.
PROVIDER_ERROR502Retryable with backoffThe supplier API returned an error status.Check the supplier's response in your gateway logs. Retry only if the supplier error is transient.
CIRCUIT_OPEN503Retryable after the stated waitToo many recent failures for this supplier, so calls are paused briefly.Retry after the Retry-After interval (30 seconds).
SSRF_BLOCKED502Retryable with backoffThe supplier URL resolves to a private or internal address, so the call was refused.Check the connector's server URL.
NO_GET_ENDPOINTS400Terminal: change the requestThe connector has no GET endpoint to test with.Test by running a workflow step instead.
NO_AUTH_PROBE400Terminal: change the requestThe connector has no authenticated GET endpoint we can safely test.Pass an explicit endpointPath, or verify credentials by running a workflow step.
PROBE_INCONCLUSIVE500Terminal: change the requestEvery tested endpoint returned success both with and without credentials, so the credentials could not be verified.Try a different endpointPath, or verify by running a workflow step.
CREDENTIAL_DECRYPT_FAILED500Terminal: change the requestThe stored credentials for this connection could not be decrypted.Re-enter the credentials for this connection.
CREDENTIAL_ENCRYPT_FAILED500Retryable with backoffThe credentials could not be encrypted, so nothing was saved.Retry with exponential backoff. Contact support with the request id if it persists.
DPOP_CONFIG_INVALID400Terminal: change the requestThe connection's signed-assertion (DPoP) credentials are missing or malformed: a required field is empty, the private key cannot be read, or the token URL is not a public https URL. The message names the field.Fix the named field on the connection and retry.
OAUTH_TOKEN_FAILED502Retryable with backoffThe supplier's token endpoint refused the signed client assertion, could not be reached, or did not issue a DPoP-bound token.Check the client ID, key, and key ID registered with the supplier, then retry.
REQUEST_SIGNER_NOT_IMPLEMENTED501Terminal: change the requestThis connector needs the supplier's request-signing scheme, which OneHazel does not support yet. The message names the connector.Contact support; calls to this connector cannot succeed until signing is added.

Data ingestion and analytics ​

CodeHTTPRetryMeaningWhat to do
MAINTENANCE_MODE503Retryable after the stated waitThe endpoint is temporarily paused for maintenance.Retry after the Retry-After interval.
TEMPLATE_NOT_CONFIGURED400Terminal: change the requestNo data template is set for your account.Set one with PUT /operator-data-api/settings first.
ANALYTICS_DISABLED403Terminal: change the requestAnalytics is turned off for your account. Ingest is not affected.Turn analytics on in Settings.
COPILOT_DISABLED410Terminal: change the requestThe analytics copilot has been switched off and is being removed.Use the Analytics dashboards.

Deleting stored analytics data ​

CodeHTTPRetryMeaningWhat to do
WIPE_FAILED500Retryable with backoffThe deletion failed and was rolled back. Nothing was deleted.Retry.
ANALYTICS_COUNT_FAILED500Retryable with backoffYour stored data could not be counted, so the deletion was not started.Retry.
ANALYTICS_WIPE_FORBIDDEN403Terminal: change the requestOnly an organisation owner or admin, signed in, can delete stored data. API keys cannot.Sign in as an owner or admin.
ANALYTICS_WIPE_INTEGRATION_ACTIVE409Terminal: change the requestA live integration reads this data, so it was not deleted.Disconnect the integration named in the message first.
ANALYTICS_WIPE_INTEGRATION_CHECK_FAILED500Retryable with backoffWe could not check which integrations use this data, so nothing was deleted.Retry.
ANALYTICS_WIPE_FOREIGN_CHILD_ROWS409Terminal: change the requestAnother account's records point at your data, so deleting it would break them. Nothing was deleted.Contact support.
ANALYTICS_WIPE_TOO_LARGE409Terminal: change the requestToo much data to delete in one go. Nothing was deleted.Contact support.
ANALYTICS_WIPE_AUDIT_FAILED500Retryable with backoffThe start of the deletion could not be recorded, so it was not run. Nothing was deleted.Retry.
ANALYTICS_WIPE_UNCERTAIN500Check state before retryingWe could not confirm whether the deletion completed. Some data may already be removed.Check Settings before retrying.
ANALYTICS_WIPE_UNVERIFIED500Check state before retryingThe deletion ran but we could not confirm the data is gone.Check Settings before retrying.
ANALYTICS_WIPE_ROWS_REMAIN409Check state before retryingThe data was deleted, but new data arrived while it ran.Pause your integrations and run it again.

Privacy (GDPR) ​

CodeHTTPRetryMeaningWhat to do
ERASURE_INCOMPLETE500Retryable with backoffOne or more erasure steps failed. Some personal data may remain.Retry the request; erasure steps are safe to repeat.
EXPORT_INCOMPLETE500Retryable with backoffPart of the data export failed, so no partial export was returned.Retry.

MCP server ​

CodeHTTPRetryMeaningWhat to do
MCP_NOT_ENABLED403Terminal: change the requestThis API key does not have MCP enabled.Enable MCP for the key on the API Keys page.
AUTH_OPERATOR_MISMATCH403Terminal: change the requestThe API key belongs to a different operator than the one in the URL.Use the canonical MCP URL, or the right key.
MCP_RESOURCE_NOT_FOUNDJSON-RPC errorNot applicableUnknown MCP resource URI.Use a URI returned by resources/list.
MCP_RESOURCES_DISABLEDJSON-RPC errorNot applicableThis API key does not have MCP resources enabled.Enable MCP resources for the key on the API Keys page.
MCP_CONNECT_NOT_ENABLEDJSON-RPC errorNot applicableThis API key does not have the onboarding (connect_*) tools enabled.This key has no Connect scope. Create one in app.onehazel.com under Connect casino, Integrate with AI (the API Keys page cannot add it).
CONNECT_DISABLEDJSON-RPC errorNot applicableThe onboarding connect feature is not enabled. The connect_* MCP tools return it as a JSON-RPC error; every /operators/me/connect/* REST route and the /connect/v1/launch and /connect/v1/demo-launch routes return it with HTTP 403.Contact support to request access.
MCP_OAUTH_DISABLED404Terminal: change the requestOne-click MCP connect (OAuth) is not enabled on this environment, so its endpoints do not exist.Connect with an API key instead, or contact support to request access.
CONNECT_INVALID_URLJSON-RPC errorNot applicableThe endpoint URL is not a public http(s) URL, or its host resolves to a private address.Register a public https URL that resolves to a public IP.
CONNECT_MODULE_NOT_REGISTRABLEJSON-RPC errorNot applicableThat module does not take a registered endpoint.Use one of wallet, player, webhook.receive, payments.intent.
CONNECT_RUN_NOT_FOUNDJSON-RPC errorTerminal: change the requestNo conformance run with that id exists for this operator. Returned as a tool error result.Use a run id from connect_status or connect_run_conformance.
CONNECT_CONNECTOR_NOT_FOUNDJSON-RPC errorTerminal: change the requestNo public marketplace connector with that key. Returned as a tool error result; the REST routes return it with HTTP 404.Use a key from connect_list_marketplace.
CONNECT_MODULE_NOT_REGISTEREDJSON-RPC errorTerminal: change the requestNo endpoint is registered for that module, so there is nothing to simulate or run conformance against (connect_simulate needs a wallet endpoint with a test player). Returned as a tool error result (HTTP 409 on the REST routes).Register the module with connect_register_endpoint (or POST /operators/me/connect/endpoints); the wallet module needs a test player id.
CONNECT_MODULE_IN_USE409Terminal: change the requestThe module cannot be unregistered because an active connection's connector requires it (removing wallet also counts for connectors that require launch). Nothing was removed. Returned as a tool error result by connect_unregister_endpoint and with HTTP 409 by DELETE /operators/me/connect/endpoints/:module.Pause the connections named in the message on their connection page, then unregister again.
CONNECT_ENDPOINT_UNREACHABLEJSON-RPC errorTerminal: change the requestRegistration probed GET <baseUrl>/healthz (both URLs when baseUrls is given) with a 3 second timeout and got a connection error, a timeout or a 5xx, so nothing was stored. Returned as a tool error result (HTTP 409 on the REST route, with the per-URL probe results, a status or an error class, in error.details.probes).Deploy your implementation, check its /healthz answers, then register again. To register before deploying, pass allowUnreachable: true; connect_status then shows reachability: unverified for the module.
CONNECT_TEST_GAME_REJECTEDRun resultTerminal: change the requestThe wallet probe opened a session with the testGame registered for the wallet and your casino refused the game (contract code game_unknown, or an unmapped native code). Recorded as code on the connect_simulate session/start step and on connect_conformance_evidence for a run that ended errored with reason test_game_rejected. The session was refused before any bet, so nothing was charged.Register the wallet again with a testGame that is active in your own catalogue, as the provider slug and game code your launch endpoint accepts (ask the person who manages your game catalogue, or use any game a real player can open today). Registering again keeps the secrets, so no restart.
MCP_RATE_LIMITEDJSON-RPC errorRetryable after the stated waitThe per-tool call rate or concurrency cap was reached.Wait error.data.retryAfterSeconds (rate) or for an in-flight call to finish (concurrency).
MCP_TOOL_NOT_FOUNDJSON-RPC errorNot applicableNo tool with that name, or it is not on this key's allowlist.Check the tool name and the key's allowlist.
MCP_INPUT_INVALIDJSON-RPC errorNot applicableThe tool arguments failed validation against its input schema.Fix the arguments listed in error.data.errors.
MCP_TIMEOUTJSON-RPC errorTerminal: change the requestThe workflow behind the tool took longer than the call timeout.Use the streaming variant for long-running workflows.
MCP_TOOL_EXECUTION_FAILEDJSON-RPC errorRetryable with backoffThe tool's workflow could not be executed.Retry with exponential backoff. Contact support with the request id if it persists.
MCP_SESSION_LIMIT_EXCEEDED429Retry once the in-flight operation finishesToo many open MCP SSE sessions for this operator.Close an open session and retry.
MCP_SESSION_INVALID400Terminal: change the requestThe MCP session id is missing or not valid.Open a new session.
INVALID_MCP_FIELDS400Terminal: change the requestThe MCP settings sent for the API key are not valid.Fix the fields named in the message.

Team members and invites ​

CodeHTTPRetryMeaningWhat to do
ALREADY_MEMBER409Terminal: change the requestThat person is already a member of the organisation.No action needed.
OWNER_PROTECTED403Terminal: change the requestThe organisation owner cannot be revoked.Transfer ownership first.
INVALID_TOKEN400Terminal: change the requestThe invite token is not valid.Ask for a new invite.
INVITE_USED409Terminal: change the requestThe invite has already been accepted.Sign in instead.
INVITE_EXPIRED410Terminal: change the requestThe invite has expired.Ask for a new invite.

Agentic integration ​

CodeHTTPRetryMeaningWhat to do
INTEGRATION_DISABLED403Terminal: change the requestAgentic integration is not enabled for this environment.Contact us to enable it.
INTEGRATION_NOT_FOUND404Terminal: change the requestThe integration request or question was not found.Check the id.
WALLET_MODE_UNAVAILABLE400Terminal: change the requestWallet integrations are not available through agentic onboarding yet.Contact us.
INSTANTIATE_UNAVAILABLE400Terminal: change the requestPlatform-scaffold instantiation is not available yet.Contact us.
QUESTION_NOT_OPEN409Terminal: change the requestThe question has already been answered or closed.No action needed.
ANSWER_SCHEMA_MISMATCH400Terminal: change the requestThe answer does not match the question's expected shape.Fix the answer as described in the message.

Workflow runs ​

CodeHTTPRetryMeaningWhat to do
MISSING_CONNECTIONRun resultNot applicableA gateway step in the workflow has no connection selected.Select a connection on the step.
MISSING_TRIGGER_FIELDRun resultNot applicableThe trigger event is missing fields the trigger requires. No step ran.Send the fields listed in the run result's details.

Server errors ​

CodeHTTPRetryMeaningWhat to do
DB_ERROR500Retryable with backoffA database operation failed.Retry with exponential backoff. Contact support with the request id if it persists.
INTERNAL_ERROR500Retryable with backoffAn unexpected server error.Retry with exponential backoff. Contact support with the request id if it persists.
INTERNAL500Retryable with backoffAn unexpected server error.Retry with exponential backoff. Contact support with the request id if it persists.
TENANT_CONTEXT_FAILED500Retryable with backoffWe could not establish your account context for the request.Retry with exponential backoff. Contact support with the request id if it persists.
UPSTREAM_FETCH_FAILED502Retryable with backoffA call to an upstream service failed.Retry with exponential backoff. Contact support with the request id if it persists.

Internal codes ​

These codes come from staff tools, internal services and partner jobs. API customers should not receive them; they are listed so the reference is complete.

CodeHTTPRetryMeaningWhat to do
INVALID_STATUS400Terminal: change the requestAdmin demand signals: the signal is not in a state that allows this action.Not returned to API customers. Contact support if you see it.
CONFLICT409Terminal: change the requestAdmin catalogue: a connector with that key already exists.Not returned to API customers. Contact support if you see it.
EMAIL_EXISTS409Terminal: change the requestPlatform partner API: an account with that email already exists.Not returned to API customers. Contact support if you see it.
ALREADY_PUBLIC400Terminal: change the requestAdmin catalogue: the connector is already public.Not returned to API customers. Contact support if you see it.
DRIFT_NOT_DISPATCHABLE409Terminal: change the requestAdmin connector update: the drift record cannot be dispatched in its current state.Not returned to API customers. Contact support if you see it.
CONNECTOR_UPDATE_DISPATCH_FAILED500Retryable with backoffAdmin connector update: the update job could not be queued.Not returned to API customers. Contact support if you see it.
SPEC_DELIVERY_FAILED500Retryable with backoffAdmin version activation: the new spec could not be written to the catalogue, so the version was not promoted.Not returned to API customers. Contact support if you see it.
ACTIVE_CONNECTIONS409Terminal: change the requestAdmin catalogue: the connector still has active connections.Not returned to API customers. Contact support if you see it.
RUNNER_GUARD_DISABLED503Retryable with backoffThe deploy-runner job-active guard endpoint has no RUNNER_GUARD_SECRET configured, so it refuses every request.Not returned to API customers. Contact support if you see it.
AUDIT_FAILED500Retryable with backoffStaff impersonation: the audit row could not be written, so the action was refused.Not returned to API customers. Contact support if you see it.
ADMIN_CONTEXT_FAILED500Retryable with backoffStaff tools: admin context could not be established.Not returned to API customers. Contact support if you see it.
IMPERSONATION_FAILED500Retryable with backoffStaff impersonation token could not be validated.Not returned to API customers. Contact support if you see it.
IMPERSONATION_INVALID403Terminal: change the requestStaff impersonation token is not valid.Not returned to API customers. Contact support if you see it.
IMPERSONATION_REVOKED403Terminal: change the requestStaff impersonation token was revoked.Not returned to API customers. Contact support if you see it.
IMPERSONATION_EXPIRED403Terminal: change the requestStaff impersonation token has expired.Not returned to API customers. Contact support if you see it.
REVOKE_FAILED500Retryable with backoffStaff impersonation token could not be revoked.Not returned to API customers. Contact support if you see it.
BACKFILL_DISABLED503Retryable with backoffMaintenance backfill endpoint is disabled.Not returned to API customers. Contact support if you see it.
REENCRYPT_DISABLED503Retryable with backoffKey-rotation re-encrypt endpoint is disabled.Not returned to API customers. Contact support if you see it.
PII_BACKFILL_DISABLED503Retryable with backoffPersonal-data encryption backfill endpoint is disabled.Not returned to API customers. Contact support if you see it.
PII_BACKFILL_ABORTED409Terminal: change the requestPersonal-data encryption backfill stopped early.Not returned to API customers. Contact support if you see it.
PII_BACKFILL_INCOMPLETE409Terminal: change the requestPersonal-data encryption backfill finished without a clean result.Not returned to API customers. Contact support if you see it.
RECOVERY_EVIDENCE_REQUIRED400Terminal: change the requestMaintenance backfill refuses to apply without a named, verified backup.Not returned to API customers. Contact support if you see it.
AUDIT_WRITE_FAILED500Retryable with backoffMaintenance job could not write its start audit row, so it did not run.Not returned to API customers. Contact support if you see it.
CONFIG_HASH_BACKFILL_DISABLED503Retryable with backoffConnection fingerprint repair endpoint is disabled.Not returned to API customers. Contact support if you see it.
CONFIG_HASH_BACKFILL_INCOMPLETE409Terminal: change the requestConnection fingerprint repair finished without a clean result.Not returned to API customers. Contact support if you see it.
CONFIG_HASH_BACKFILL_COLLISION409Terminal: change the requestConnection fingerprint repair found two connections with identical credentials.Not returned to API customers. Contact support if you see it.
REENCRYPT_MATCHED_NOTHING422Terminal: change the requestKey-rotation re-encrypt matched no rows.Not returned to API customers. Contact support if you see it.
REENCRYPT_ABORTED500Retryable with backoffKey-rotation re-encrypt stopped early.Not returned to API customers. Contact support if you see it.
REENCRYPT_REFUSED409Terminal: change the requestKey-rotation re-encrypt refused to run in the current state.Not returned to API customers. Contact support if you see it.
REENCRYPT_SCHEMA_MISMATCH409Terminal: change the requestKey-rotation re-encrypt found an unexpected schema.Not returned to API customers. Contact support if you see it.
REENCRYPT_AUDIT_FAILED500Retryable with backoffKey-rotation re-encrypt could not write its audit row.Not returned to API customers. Contact support if you see it.
WORKFLOW_ENGINE_NOT_CONFIGURED503Retryable with backoffInternal workflow-engine trigger entrypoints are not configured.Not returned to API customers. Contact support if you see it.
TRUST_UPDATE_FAILED500Retryable with backoffAdmin catalogue: trust tier update failed.Not returned to API customers. Contact support if you see it.
INVALID_OUTCOMES400Terminal: change the requestAdmin catalogue: outcome tags are not in the allowed set.Not returned to API customers. Contact support if you see it.
OUTCOMES_UPDATE_FAILED500Retryable with backoffAdmin catalogue: outcome tag update failed.Not returned to API customers. Contact support if you see it.
INVALID_BODY400Terminal: change the requestPartner report uploader: the request body is not valid.Not returned to API customers. Contact support if you see it.
INVALID_REPORT_TYPE400Terminal: change the requestPartner report uploader: unknown report type.Not returned to API customers. Contact support if you see it.
INVALID_REPORT_DATE400Terminal: change the requestPartner report uploader: report date is not valid.Not returned to API customers. Contact support if you see it.
INVALID_BRAND_GUID400Terminal: change the requestPartner report uploader: brand id is not valid.Not returned to API customers. Contact support if you see it.
FIXTURE_NOT_FOUND500Retryable with backoffPartner report uploader: no fixture for that report type.Not returned to API customers. Contact support if you see it.
WRONG_CONNECTOR400Terminal: change the requestPartner report uploader: the connection is for a different connector.Not returned to API customers. Contact support if you see it.
DECRYPT_FAILED500Retryable with backoffPartner report uploader: connection credentials could not be decrypted.Not returned to API customers. Contact support if you see it.
MISSING_API_KEY500Retryable with backoffPartner report uploader: the connection has no outbound key configured.Not returned to API customers. Contact support if you see it.
MULTIPART_FAILED500Retryable with backoffPartner report uploader: the upload could not be built.Not returned to API customers. Contact support if you see it.
SCHEDULED_SECRET_REQUIRED401Terminal: change the requestPartner report uploader: scheduled mode needs its own secret.Not returned to API customers. Contact support if you see it.
REPORT_DATE_REQUIRED400Terminal: change the requestPartner report uploader: report date is required for this report type.Not returned to API customers. Contact support if you see it.
MISSING_BRAND_GUID400Terminal: change the requestPartner report uploader: brand id is missing.Not returned to API customers. Contact support if you see it.
REFERON_RESEND_DISABLED503Retryable with backoffPartner report resend: the uploader secret is not configured, so manual resend is disabled.Not returned to API customers. Contact support if you see it.
REFERON_RESEND_UPSTREAM_FAILED502Retryable with backoffPartner report resend: the uploader could not be reached.Not returned to API customers. Contact support if you see it.
MATERIALISE_FAILED500Retryable with backoffPartner report uploader: the report file could not be built.Not returned to API customers. Contact support if you see it.
ADMIN_REQUIRED403Terminal: change the requestConnector dump endpoint is admin-only.Not returned to API customers. Contact support if you see it.
INVALID_ATTRIBUTION_KEYS400Terminal: change the requestAdmin catalogue: attribution keys are not valid.Not returned to API customers. Contact support if you see it.
ATTRIBUTION_KEYS_UPDATE_FAILED500Retryable with backoffAdmin catalogue: attribution key update failed.Not returned to API customers. Contact support if you see it.
MATERIALISE_PARTIAL500Retryable with backoffPartner report uploader: the report was withheld because some rows could not be decrypted.Not returned to API customers. Contact support if you see it.

Log markers and reserved codes ​

Log markers are written to server logs and never returned in a response. Reserved codes are registered but no endpoint currently returns them.

CodeHTTPRetryMeaningWhat to do
OPERATOR_EMAIL_EXISTSNot returnedNot applicableAn operator with this email already exists.None. Not currently returned.
NO_SERVER_URLNot returnedNot applicableThe connector spec has no server URL.None. Not currently returned.
SPEEDRUN_ALREADY_SUBSCRIBEDNot returnedNot applicableAlready subscribed to the matching connector.None. Not currently returned.
SPEEDRUN_FALLBACK_TO_BUILDNot returnedNot applicableFast subscribe was not possible; a full build is needed.None. Not currently returned.
ROW_DECRYPT_ALL_FAILEDLog onlyNot applicableEvery row in a decrypt batch failed.None. Never returned in a response.
PII_MAP_MISSINGLog onlyNot applicableIngest found no personal-data field map for a template.None. Never returned in a response.
STATE_MAP_MISSINGLog onlyNot applicableIngest found no personal-data map for state values.None. Never returned in a response.
ROW_DECRYPT_SKIPPEDLog onlyNot applicableOne row could not be decrypted and was skipped.None. Never returned in a response.