Error codes¶
Every error the Paridity API returns carries a stable, machine-readable code. This page lists every code the platform can return, with the HTTP status it comes with, the message, and what to do about it.
The error body¶
Every error response has the same shape:
{
"error": {
"code": "SYSTEM_NOT_FOUND",
"message": "System 'sys_abc' not found",
"detail": null,
"request_id": "3f6c1e0a-..."
},
"detail": { "code": "SYSTEM_NOT_FOUND", "message": "System 'sys_abc' not found", "request_id": "3f6c1e0a-..." }
}
error.code- the code from the table below. Branch on this, never on the message text.error.message- a human-readable sentence. When the raising site sets no message, it is the HTTP status phrase (for exampleNot Found).error.detail- the code's extra fields (the table's Detail keys column, for examplefieldorside); for a request that failed validation, the list of invalid fields; otherwisenull.error.request_id- the request's reference. The same value is in theX-Request-IDresponse header of every error response, including an unexpected500. Quote it when you report a problem: it locates the full error in the server log.detail- the pre-errorshape, kept unchanged for existing clients. New clients should readerror.
The MCP endpoint (/mcp) is the one exception: its transport-level refusals
carry error.code and error.message only.
An error the platform did not anticipate is answered 500 with the code
INTERNAL_ERROR and a fixed message; the details stay in the server log under
the request id.
Reading the catalogue¶
- HTTP status lists every status a code is returned with, when sites differ.
- Message is the message text when every site that raises the code sends
the same text.
variesmeans the sites differ or the text is built at run time (it names the object, field or value involved) - readerror.message. - Raised from names the platform module that raises the code and, in brackets, the shared validation class when the code comes from one. It helps support locate the source; you do not need it to act.
- What to do is written only where the remedy follows from how the code is raised. Where it says No guidance yet, report the code and the request id (see Report a problem).
The catalogue is generated from the platform's code by
scripts/gen_error_catalogue.py, and CI fails if the code and this page
disagree, so a code cannot be added without appearing here.
Catalogue¶
Generated from the code under src/ by scripts/gen_error_catalogue.py. Do not hand-edit; CI fails if this table and the code disagree.
| Code | HTTP status | Message | Detail keys | Raised from | What to do |
|---|---|---|---|---|---|
ADAPTER_NOT_FOUND |
503 | Service Unavailable | - | routers.notification_rules |
No guidance yet - quote the code and the request id in your report. |
AI_DISABLED |
404 | AI features are not enabled for this deployment or tenant. Contact your platform administrator if this is unexpected. | - | services.ai.invocation |
No guidance yet - quote the code and the request id in your report. |
AI_INVALID_RESPONSE |
502 | varies | - | services.ai.invocation |
No guidance yet - quote the code and the request id in your report. |
AI_PROVIDER_ALREADY_APPROVED |
409 | Provider is already approved. | - | routers.ai_providers |
No guidance yet - quote the code and the request id in your report. |
AI_PROVIDER_ALREADY_DISABLED |
409 | Provider is already disabled. | - | routers.ai_providers |
No guidance yet - quote the code and the request id in your report. |
AI_PROVIDER_CONFLICT |
409 | varies | - | routers.ai_providers |
No guidance yet - quote the code and the request id in your report. |
AI_PROVIDER_ENABLED |
409 | Disable the provider before deleting it. | - | routers.ai_providers |
No guidance yet - quote the code and the request id in your report. |
AI_PROVIDER_ERROR |
502 | The AI provider rejected the request. | - | services.ai.invocation |
No guidance yet - quote the code and the request id in your report. |
AI_PROVIDER_NOT_APPROVED |
409 | Provider must be approved before enabling. | - | routers.ai_providers |
No guidance yet - quote the code and the request id in your report. |
AI_PROVIDER_NOT_FOUND |
404 | AI provider not found | - | routers.ai_providers |
The object the request names was not found. Check the id in the request. |
AI_RATE_LIMITED |
429 | The AI provider is rate limiting requests; retry shortly. | - | services.ai.invocation |
No guidance yet - quote the code and the request id in your report. |
AI_UNAVAILABLE |
503 | The AI provider is unavailable; retry later. | - | services.ai.invocation |
No guidance yet - quote the code and the request id in your report. |
API_KEY_NOT_FOUND |
404 | Not Found | - | routers.governance |
The object the request names was not found. Check the id in the request. |
API_KEY_PREFIX_EXHAUSTED |
503 | Could not allocate a unique API key prefix. Retry the request. | - | routers.governance |
No guidance yet - quote the code and the request id in your report. |
APPLY_FAILED |
422 | varies | - | routers.discovery |
No guidance yet - quote the code and the request id in your report. |
APPROVAL_ALREADY_DECIDED |
409 | varies | - | routers.approvals (ApprovalConflictError) |
No guidance yet - quote the code and the request id in your report. |
APPROVAL_EXPIRED |
409 | varies | - | routers.approvals (ApprovalConflictError) |
No guidance yet - quote the code and the request id in your report. |
APPROVAL_NOT_FOUND |
404 | varies | - | routers.approvals, routers.approvals (ApprovalNotFoundError) |
The object the request names was not found. Check the id in the request. |
APPROVAL_NOT_REQUESTER |
403 | varies | - | routers.approvals (ApprovalForbiddenError) |
No guidance yet - quote the code and the request id in your report. |
APPROVAL_REQUIRED |
403 | varies | - | dependencies.auth, routers.runs |
No guidance yet - quote the code and the request id in your report. |
APPROVAL_TARGET_INVALID |
409 | varies | - | routers.approvals (ApprovalConflictError) |
No guidance yet - quote the code and the request id in your report. |
APPROVAL_UNSUPPORTED |
409 | varies | - | routers.approvals (ApprovalConflictError) |
No guidance yet - quote the code and the request id in your report. |
ASYMMETRIC_TRANSFORM_REQUIRES_ADMIN |
403 | varies | field |
routers.mappings |
No guidance yet - quote the code and the request id in your report. |
BREAK_GLASS_CAP |
409 | varies | - | routers.principals |
No guidance yet - quote the code and the request id in your report. |
BULK_WIPE_NOT_ENABLED |
403 | Bulk deletion of all runs is disabled. Set ALLOW_BULK_RUN_WIPE=true in the environment to enable it. | - | routers.runs |
No guidance yet - quote the code and the request id in your report. |
BUNDLE_BYTES_MISSING |
409 | varies | bytes_status, persist_limit_bytes, size_bytes |
routers.evidence_bundles |
No guidance yet - quote the code and the request id in your report. |
BUNDLE_BYTES_NOT_RETAINED |
409 | varies | bytes_status, persist_limit_bytes, size_bytes |
routers.evidence_bundles |
No guidance yet - quote the code and the request id in your report. |
BUNDLE_GENERATION_FAILED |
503 | The evidence bundle could not be generated. | - | routers.evidence_bundles |
No guidance yet - quote the code and the request id in your report. |
BUNDLE_INTEGRITY_MISMATCH |
409 | varies | - | routers.evidence_bundles |
No guidance yet - quote the code and the request id in your report. |
BUNDLE_NOT_FOUND |
404 | varies | - | mcp.tools.verify_evidence_bundle, routers.evidence_bundles |
The object the request names was not found. Check the id in the request. |
BUNDLE_NOT_READY |
409 | varies | bytes_status, persist_limit_bytes, size_bytes |
routers.evidence_bundles |
No guidance yet - quote the code and the request id in your report. |
BUNDLE_STORE_OBJECT_MISSING |
409 | The container's object is no longer present in the object store; the signed metadata is on record. | bytes_status, store_uri |
routers.evidence_bundles |
No guidance yet - quote the code and the request id in your report. |
BUNDLE_STORE_UNAVAILABLE |
503 | The object store holding this container could not be consulted; bytes not released. | - | routers.evidence_bundles |
No guidance yet - quote the code and the request id in your report. |
BUNDLE_TOO_LARGE |
409 | varies | bytes_status, persist_limit_bytes, size_bytes |
routers.evidence_bundles |
No guidance yet - quote the code and the request id in your report. |
BUSINESS_DOMAIN_NOT_FOUND |
404 | Target business domain not found. | - | routers.replication_profiles |
The object the request names was not found. Check the id in the request. |
BUSINESS_DOMAIN_REQUIRED |
422 | varies | - | routers.mappings, routers.systems |
No guidance yet - quote the code and the request id in your report. |
CANCEL_FAILED |
503 | Temporal workflow cancellation failed; DB unchanged. Retry. | - | routers.runs |
No guidance yet - quote the code and the request id in your report. |
CANONICAL_TYPE_OVERRIDE_NOT_APPLICABLE |
422 | varies | field |
models.api.requests (FieldConfigRejection), routers.mappings (FieldConfigRejection), routers.suggestions (SuggestionNotApplicableError) |
No guidance yet - quote the code and the request id in your report. |
CDC_TABLE_SEMANTICS_INVALID |
422 | varies | - | routers.mappings |
No guidance yet - quote the code and the request id in your report. |
CDC_TABLE_SEMANTICS_SYSTEM_MISMATCH |
422 | varies | - | routers.mappings |
replacing_merge_tree_final and clickpipes_peerdb describe how a ClickHouse table is read, so they need a mapping with a ClickHouse side. Map a ClickHouse system, or choose another cdc_table_semantics. |
CHANNEL_CREDENTIAL_CROSS_USE |
422 | varies | field |
routers.notification_rules |
The credential_ref names a secret another part of the platform owns (the message says which kind). Store a separate secret for the channel and reference that one. |
CHANNEL_DESTINATION_REQUIRES_ADMIN |
403 | Setting or changing a notification channel's credential_ref or destination (URL / host) requires platform_admin. Other channel fields can be edited without it. | fields |
routers.notification_rules |
A notification channel's credential_ref and destination (the fields listed in fields) can only be set or changed by a platform admin. Ask one to make that change, or resend the request with those fields unchanged. |
CHANNEL_DISABLED |
409 | Enable the channel before sending a test ticket. | - | routers.notification_rules |
No guidance yet - quote the code and the request id in your report. |
CHANNEL_NAME_EXISTS |
409 | A notification channel with this name already exists. | - | routers.notification_rules |
This tenant already has a notification channel with that name. Choose another name, or update the existing channel. |
CHANNEL_NOT_FOUND |
404 | Not Found | - | routers.notification_rules |
The object the request names was not found. Check the id in the request. |
CONFIRMATION_REQUIRED |
400 | scope=all requires confirm=true to prevent accidental deletion of all runs. | - | routers.runs |
No guidance yet - quote the code and the request id in your report. |
CONFLICT |
409 | varies | - | routers.principals |
No guidance yet - quote the code and the request id in your report. |
CONNECTION_FAILED |
422 | Could not establish a connection to the system. | - | routers.discovery |
No guidance yet - quote the code and the request id in your report. |
CONNECTION_REF_OVERRIDE_FORBIDDEN |
403 | Testing a connection reference other than the stored one requires permission to change it (system.update on this system) or to create systems (system.create). | - | routers.systems |
Testing an entered (unsaved) connection reference needs the right to change it (system.update on the system, or system.create) - #3384. Save the reference first with a role that may, or test the stored reference without an override. |
CONNECTOR_UNAVAILABLE |
422 | The connector for this system is not available. | - | routers.discovery |
No guidance yet - quote the code and the request id in your report. |
DATA_RESIDENCY_VIOLATION |
403 | varies | - | services.ai.invocation |
No guidance yet - quote the code and the request id in your report. |
DB_ERROR |
500 | The subscription could not be saved. | - | routers.subscriptions |
No guidance yet - quote the code and the request id in your report. |
DECIMAL_IN_FLOAT_ON_NONFLOAT |
422 | varies | field |
models.api.requests (FieldConfigRejection), routers.mappings (FieldConfigRejection), routers.suggestions (SuggestionNotApplicableError) |
No guidance yet - quote the code and the request id in your report. |
DECRYPT_CONFIG_REQUIRES_ADMIN |
403 | varies | field |
routers.mappings |
No guidance yet - quote the code and the request id in your report. |
DECRYPT_EXPRESSION_INVALID |
422 | Unprocessable Entity | errors, field |
routers.mappings |
No guidance yet - quote the code and the request id in your report. |
DECRYPT_EXPRESSION_WITH_ALGO |
422 | This field uses Python-side decrypt (decrypt_algo). A decrypt_expression cannot be combined with it — remove the Python-decrypt config first, or drop the expression. | field |
routers.mappings |
No guidance yet - quote the code and the request id in your report. |
DECRYPT_KEY_REF_REQUIRED_FOR_ALGO |
422 | This field uses Python-side decrypt (decrypt_algo) and requires decrypt_key_ref. To remove the decrypt config, omit the field from the body (platform_admin). | field |
routers.mappings |
No guidance yet - quote the code and the request id in your report. |
DECRYPT_KEY_REF_WITHOUT_EXPRESSION |
422 | decrypt_key_ref requires a decrypt_expression on the field (or a Python-decrypt algo). Set the expression in the same save, or omit the key reference. | field |
routers.mappings |
No guidance yet - quote the code and the request id in your report. |
DECRYPT_ON_KEY_COLUMN |
422 | varies | field |
models.api.requests (FieldConfigRejection), routers.mappings (FieldConfigRejection), routers.suggestions (SuggestionNotApplicableError) |
No guidance yet - quote the code and the request id in your report. |
DESIGN_PARTNER_PENDING |
501 | Adapter is design-partner pending; profile is configured but discovery/latency are unavailable. | tool |
routers.replication_profiles |
No guidance yet - quote the code and the request id in your report. |
DIAGNOSTIC_MAPPING_NOT_FOUND |
404 | No mapping with that id is visible to you. | - | routers.diagnostics |
The object the request names was not found. Check the id in the request. |
DIAGNOSTIC_RUN_NOT_FOUND |
404 | No run or execution request with that id is visible to you. | - | routers.diagnostics |
The object the request names was not found. Check the id in the request. |
DIAGNOSTIC_TARGET_MISMATCH |
422 | mapping_id does not match the run's mapping; send one or the other. | - | routers.diagnostics |
No guidance yet - quote the code and the request id in your report. |
DISCOVERY_NOT_SUPPORTED |
501 | varies | tool |
routers.replication_profiles |
No guidance yet - quote the code and the request id in your report. |
DISPATCH_FAILED |
503 | Workflow dispatch failed; request marked system_error. | - | routers.runs |
No guidance yet - quote the code and the request id in your report. |
DOMAIN_ALREADY_CLAIMED |
409 | varies | - | routers.identity_providers |
No guidance yet - quote the code and the request id in your report. |
DOMAIN_DELETE_FAILED |
422 | Domain could not be deleted. | - | routers.business_domains |
No guidance yet - quote the code and the request id in your report. |
DOMAIN_INVALID |
422 | Invalid domain specification. | - | routers.business_domains |
No guidance yet - quote the code and the request id in your report. |
DOMAIN_NOT_FOUND |
404 | Domain not found. | - | routers.business_domains |
The object the request names was not found. Check the id in the request. |
DOMAIN_OUT_OF_SCOPE |
403 | You do not have access to the target business domain. | - | routers.replication_profiles |
No guidance yet - quote the code and the request id in your report. |
DOMAIN_PATH_EXISTS |
409 | varies | - | routers.business_domains |
No guidance yet - quote the code and the request id in your report. |
DUPLICATE_IDEMPOTENCY_KEY |
409 | Idempotency key already used. | - | routers.runs |
No guidance yet - quote the code and the request id in your report. |
DUPLICATE_MAPPING_GROUP |
409 | varies | - | routers.mapping_groups |
No guidance yet - quote the code and the request id in your report. |
ELEVATION_NOT_FOUND_OR_NOT_APPROVED |
404 | Not Found | - | routers.governance |
No guidance yet - quote the code and the request id in your report. |
ELEVATION_NOT_FOUND_OR_NOT_PENDING |
404 | Not Found | - | routers.governance |
No guidance yet - quote the code and the request id in your report. |
EMPTY_UPDATE |
422 | No fields to update. | - | routers.ai_providers, routers.identity_providers |
The update named no fields to change. Include at least one field. |
EVIDENCE_AUDIT_WRITE_FAILED |
503 | varies | - | routers.evidence_bundles |
No guidance yet - quote the code and the request id in your report. |
EXTERNAL_API_ERROR |
502, 503 | varies | - | routers.notification_rules |
No guidance yet - quote the code and the request id in your report. |
FIELD_NOT_PATCHABLE |
422 | varies | fields |
routers.mappings |
No guidance yet - quote the code and the request id in your report. |
FORBIDDEN |
403 | varies | - | dependencies.auth, mcp.server, routers.ai_providers, routers.discovery, routers.evidence, routers.evidence_bundles, routers.runs, routers.tenant |
Your role or grants do not allow this request. The message says what is missing - usually a permission or a role; ask a platform or tenant admin to grant it. |
GRANT_ROLE_ABOVE_CALLER |
403 | varies | - | routers.grants |
You can grant or revoke only roles at or below your own highest role; platform_admin can be granted or revoked only by a platform admin. Ask a principal who holds the role (or a higher one) to make the change. |
GRANT_SELF_ESCALATION |
403 | varies | - | routers.grants |
You cannot grant yourself, or a group you belong to, a role you do not already hold. Ask another administrator to grant it. |
HOLD_ALREADY_ACTIVE |
409 | varies | - | routers.legal_holds |
No guidance yet - quote the code and the request id in your report. |
HOLD_NOT_FOUND |
404 | varies | - | routers.legal_holds |
The object the request names was not found. Check the id in the request. |
HOLD_TARGET_NOT_FOUND |
404 | varies | - | routers.legal_holds |
The object the request names was not found. Check the id in the request. |
IDEMPOTENCY_KEY_BODY_MISMATCH |
422 | This Idempotency-Key was previously used with a different request body. Use a new key for a different operation. | - | middleware.idempotency |
This Idempotency-Key was already used with a different request body. Use a new key for a different request. |
IDEMPOTENCY_KEY_TOO_LONG |
400 | varies | - | middleware.idempotency |
Shorten the Idempotency-Key to the length the message states. |
IDEMPOTENCY_STORE_UNAVAILABLE |
503 | The idempotency store is unavailable and this operation has external side effects. Retry later. | - | middleware.idempotency |
The idempotency store could not be reached and this operation has external side effects, so it was refused rather than risk running twice. Retry after the Retry-After interval. |
IDEMPOTENT_REQUEST_IN_PROGRESS |
409 | A request with this Idempotency-Key is currently being processed. Retry to receive its result. | - | middleware.idempotency |
A request with the same Idempotency-Key is still being processed. Retry after the Retry-After interval, with the same key and body, to receive its result. |
IDENTITY_LINK_CONFLICT |
403 | This login's identity provider does not match the identity already bound to this account. An administrator must reset the account's identity binding (POST /principals/{id}/reset-identity) before this provider can be linked. | - | dependencies.auth |
No guidance yet - quote the code and the request id in your report. |
IDP_CREDENTIAL_CROSS_USE |
422 | varies | field |
routers.identity_providers |
The client_secret_ref names a secret another part of the platform owns (the message says which kind). Store the provider's client secret as its own entry in the secrets backend and reference that one. |
IDP_INVALID |
422 | SAML idp_entity_id must not be empty. | - | routers.identity_providers |
No guidance yet - quote the code and the request id in your report. |
IDP_ISSUER_CONFLICT |
409 | An identity provider with this issuer/entityID is already registered. | - | routers.identity_providers |
No guidance yet - quote the code and the request id in your report. |
IDP_ISSUER_RESERVED |
422 | This issuer is the deployment's own OIDC issuer or platform issuer and cannot be registered as a tenant identity provider. | - | routers.identity_providers |
The issuer (or SAML entityID) is this deployment's own OIDC issuer or its platform issuer, which tokens issued to the whole deployment carry, so no tenant identity provider may claim it. Register the identity provider under its own issuer. |
IDP_NOT_FOUND |
404 | varies | - | routers.identity_providers, routers.saml |
The object the request names was not found. Check the id in the request. |
IDP_SECRET_REQUIRES_ADMIN |
403 | Setting or changing an identity provider's issuer, JWKS base URL or client_secret_ref requires platform_admin. Other provider fields can be edited without it. | fields |
routers.identity_providers |
An identity provider's issuer, JWKS base URL and client_secret_ref (the fields listed in fields) can only be set or changed by a platform admin. Ask one to make that change, or resend the request with those fields unchanged. |
INSTALLATION_ID_MISSING |
503 | This installation has no id (cfg.installation is empty): apply migration 255_installation_and_licence_state.sql. | - | routers.subscription_status |
No guidance yet - quote the code and the request id in your report. |
INTERNAL_ERROR |
500 | An unexpected error occurred. | - | main |
An unexpected server error. Report it with the request id (the X-Request-ID response header, also error.request_id) - it locates the full error in the server log. |
INVALID_CURSOR |
422 | varies | - | routers.evidence_bundles, routers.metrics, routers.principals, routers.runs |
The cursor is not one this listing returned. Restart the listing without a cursor, then pass back each page's next_cursor unchanged. |
INVALID_HOLD_SCOPE |
400 | varies | - | routers.legal_holds |
No guidance yet - quote the code and the request id in your report. |
INVALID_INPUT_ENCODING |
422 | A request value contains a character the database cannot store (for example a NUL byte). | - | main |
A path, query or body value carries a character the database cannot store - almost always a NUL byte (%00 / \u0000). Remove it and resend (#3364). |
INVALID_PARAM |
422 | varies | - | routers.runs |
No guidance yet - quote the code and the request id in your report. |
INVALID_SEVERITY |
422 | varies | - | routers.subscriptions |
No guidance yet - quote the code and the request id in your report. |
INVALID_STATE |
409 | varies | - | routers.runs |
No guidance yet - quote the code and the request id in your report. |
INVALID_WATERMARK |
422 | varies | side |
routers.discovery |
No guidance yet - quote the code and the request id in your report. |
INVALID_WATERMARK_CONFIG |
422 | varies | fields, side |
routers.mappings |
No guidance yet - quote the code and the request id in your report. |
KEY_COLUMN_BLOB_SKIPPED |
422 | varies | field |
models.api.requests (FieldConfigRejection), routers.mappings (FieldConfigRejection), routers.suggestions (SuggestionNotApplicableError) |
No guidance yet - quote the code and the request id in your report. |
KEY_COLUMN_EXCLUDED_FROM_DIFF |
422 | varies | field |
models.api.requests (FieldConfigRejection), routers.mappings (FieldConfigRejection), routers.suggestions (SuggestionNotApplicableError) |
No guidance yet - quote the code and the request id in your report. |
KEY_COLUMN_EXCLUDED_FROM_HASH |
422 | varies | field |
models.api.requests (FieldConfigRejection), routers.mappings (FieldConfigRejection), routers.suggestions (SuggestionNotApplicableError) |
No guidance yet - quote the code and the request id in your report. |
KEY_IDENTITY_IS_STRICT |
422 | varies | field |
models.api.requests (FieldConfigRejection), routers.mappings (FieldConfigRejection), routers.suggestions (SuggestionNotApplicableError) |
No guidance yet - quote the code and the request id in your report. |
KEY_IDENTITY_PROFILE_UNAVAILABLE |
422 | varies | - | routers.mappings |
The platform cannot run this key identity profile yet. Choose a profile the message lists as available. |
LICENCE_ACTIVATION_REFUSED |
422 | varies | details, errorCode, requestId |
routers.subscription_status |
No guidance yet - quote the code and the request id in your report. |
LICENCE_DEACTIVATION_REFUSED |
422 | varies | errorCode, requestId |
routers.subscription_status |
No guidance yet - quote the code and the request id in your report. |
LICENCE_KEY_IN_USE |
409 | This licence key already licenses another tenant of this installation. | - | routers.subscription_status |
No guidance yet - quote the code and the request id in your report. |
LICENCE_KEY_UNRESOLVABLE |
422 | varies | reason |
routers.subscription_status |
No guidance yet - quote the code and the request id in your report. |
LICENCE_NOT_ACTIVATED |
409 | This tenant has no activation to deactivate. | - | routers.subscription_status |
No guidance yet - quote the code and the request id in your report. |
LICENCE_NOT_REFRESHABLE |
409 | This tenant has no online activation to refresh: activate with a licence key first (an offline activation is renewed with a new code). | - | routers.subscription_status |
No guidance yet - quote the code and the request id in your report. |
LICENCE_REQUIRED |
402 | varies | last_verdict_code, licence_reason, licence_state, licence_verdict |
services.entitlement_service |
No guidance yet - quote the code and the request id in your report. |
LICENCE_SERVER_UNAVAILABLE |
503 | varies | class, http_status, retry_after |
routers.subscription_status |
No guidance yet - quote the code and the request id in your report. |
LICENCE_TRANSFER_COOLDOWN |
429 | varies | nextTransferAvailable, requestId |
routers.subscription_status |
No guidance yet - quote the code and the request id in your report. |
LIVE_REVEAL_DISPATCH_FAILED |
503 | The live re-fetch could not be dispatched. Try again shortly. | - | routers.evidence |
No guidance yet - quote the code and the request id in your report. |
LIVE_REVEAL_FAILED |
502 | The live re-fetch failed against the source or target system. The connection may be down; as-of-run reveal still works. | - | routers.evidence |
No guidance yet - quote the code and the request id in your report. |
LIVE_REVEAL_TIMEOUT |
504 | varies | - | routers.evidence |
No guidance yet - quote the code and the request id in your report. |
LOCAL_AUTH_ONLY |
403 | This tenant accepts local login only; external SSO login is not permitted. | - | dependencies.auth |
No guidance yet - quote the code and the request id in your report. |
MAPPING_GROUP_NOT_FOUND |
404 | varies | - | routers.mapping_groups |
The object the request names was not found. Check the id in the request. |
MAPPING_HAS_HISTORY |
409 | varies | references |
routers.mappings |
No guidance yet - quote the code and the request id in your report. |
MAPPING_HAS_NO_CONFIG_VERSION |
400 | Mapping has no config version. Run schema-refresh (POST /mappings/{id}/schema-refresh) or update the mapping to create one before submitting a run. | - | routers.runs |
No guidance yet - quote the code and the request id in your report. |
MAPPING_HAS_RUN_HISTORY |
409 | varies | run_count |
routers.mappings |
No guidance yet - quote the code and the request id in your report. |
MAPPING_IN_GROUPS |
409 | Mapping belongs to one or more groups. Remove it first or use ?force=true. | groups |
routers.mappings |
No guidance yet - quote the code and the request id in your report. |
MAPPING_LIMIT_REACHED |
402 | varies | active_count, limit, requested |
services.entitlement_service |
No guidance yet - quote the code and the request id in your report. |
MAPPING_NAME_CONFLICT |
409 | varies | - | routers.mappings |
No guidance yet - quote the code and the request id in your report. |
MAPPING_NOT_FOUND |
404 | varies | - | mcp.tools.check_key_status, mcp.tools.get_config_change_timeline, mcp.tools.get_data_issues, mcp.tools.get_issue_impact, mcp.tools.get_mapping_config, mcp.tools.get_mapping_health_history, mcp.tools.get_measured_usage, mcp.tools.get_readiness_status, mcp.tools.get_replication_health, mcp.tools.get_schema_drift, mcp.tools.get_verification_statement, mcp.tools.get_watermark_history, mcp.tools.list_anomalies, routers.ai, routers.evidence_bundles, routers.mapping_groups (MappingGroupReferenceNotFound), routers.mappings, routers.metrics, routers.runs, routers.schedules, routers.subscriptions |
The object the request names was not found. Check the id in the request. |
MAPPING_NOT_HIGH_RISK |
409 | varies | - | routers.ai |
No guidance yet - quote the code and the request id in your report. |
MCP_DISABLED |
403 | The MCP surface is disabled on this platform (CFG_AI_ENABLED). | - | mcp.server |
No guidance yet - quote the code and the request id in your report. |
MCP_DISABLED_TENANT |
403 | MCP is not enabled for this tenant (cfg.tenant_defaults.mcp_enabled). | - | mcp.server |
No guidance yet - quote the code and the request id in your report. |
MISSING_IDEMPOTENCY_KEY |
400 | All state-mutating requests require an Idempotency-Key header. Use a UUID or a deterministic key for your request. | - | middleware.idempotency |
Send an Idempotency-Key header (for example a UUID) on every POST, PUT, PATCH and DELETE request. |
NOT_EDITABLE |
422 | varies | keys |
routers.tenant |
No guidance yet - quote the code and the request id in your report. |
NOT_ELEVATION_OWNER |
403 | varies | - | routers.governance |
No guidance yet - quote the code and the request id in your report. |
NOT_FOUND |
404 | varies | - | routers.grants, routers.principals, routers.runs |
No guidance yet - quote the code and the request id in your report. |
NOT_REFRESHABLE |
403 | Only SAML SSO session tokens can be refreshed. | - | routers.me |
No guidance yet - quote the code and the request id in your report. |
NOT_SAML_SESSION |
403 | Only SAML SSO sessions can be signed out at the identity provider. | - | routers.me |
No guidance yet - quote the code and the request id in your report. |
NO_ACTIVE_AI_PROVIDER |
404 | No approved + enabled AI provider is configured for this tenant. Configure one via /ai-providers before invoking the Onboarding Copilot. | - | services.ai.invocation |
No guidance yet - quote the code and the request id in your report. |
NO_EMAIL |
409 | This user has no email; a 'direct' placeholder binding cannot be keyed. Set an email first. | - | routers.principals |
No guidance yet - quote the code and the request id in your report. |
NO_ITEMS |
400 | items must not be empty. | - | routers.evidence |
No guidance yet - quote the code and the request id in your report. |
NO_PROPOSALS_CONFIRMED |
400 | confirmed_proposal_ids must not be empty | - | routers.discovery |
No guidance yet - quote the code and the request id in your report. |
NO_SSO |
404 | varies | - | routers.saml |
No guidance yet - quote the code and the request id in your report. |
NO_TAGS_PROVIDED |
400 | tags must not be empty | - | routers.schedules |
No guidance yet - quote the code and the request id in your report. |
NO_VALUES_PROVIDED |
400 | Provide at least one setting to update. | - | routers.tenant |
No guidance yet - quote the code and the request id in your report. |
NO_WATERMARK_SUPPLIED |
400 | Supply source_watermark and/or target_watermark. | - | routers.discovery |
No guidance yet - quote the code and the request id in your report. |
NULL_NOT_ALLOWED |
422 | varies | fields |
routers.mappings |
No guidance yet - quote the code and the request id in your report. |
NUMERIC_SCALE_ON_DECRYPT_FIELD |
422 | varies | field |
routers.mappings (DecryptCanonRejection), routers.suggestions (SuggestionNotApplicableError) |
No guidance yet - quote the code and the request id in your report. |
NUMERIC_SCALE_ZERO |
422 | varies | field |
models.api.requests (FieldConfigRejection), routers.mappings (FieldConfigRejection), routers.suggestions (SuggestionNotApplicableError) |
No guidance yet - quote the code and the request id in your report. |
OFFLINE_CODE_INVALID |
422 | varies | reason |
routers.subscription_status |
No guidance yet - quote the code and the request id in your report. |
OFFLINE_CODE_OTHER_MACHINE |
409 | This activation code was issued for another installation. Send this installation's challenge to EGMW support for a new code. | - | routers.subscription_status |
No guidance yet - quote the code and the request id in your report. |
OIDC_CONFIG_ON_SAML |
422 | client_secret_ref / oidc_config apply to OIDC providers only. | - | routers.identity_providers |
No guidance yet - quote the code and the request id in your report. |
PARTITION_NOT_FOUND |
404 | Not Found | - | routers.runs |
The object the request names was not found. Check the id in the request. |
PARTITION_STRATEGY_EMPTY |
422 | partition_strategy would discover zero partitions — a partitioned run over zero partitions compares nothing. Declare non-empty discovery values/ranges (e.g. discovery: {mode: enumerated, values: [...]}) or remove partition_strategy. (#1173) | - | routers.mappings |
No guidance yet - quote the code and the request id in your report. |
PARTITION_STRATEGY_INVALID |
422 | varies | detail |
routers.mappings |
No guidance yet - quote the code and the request id in your report. |
PARTITION_STRATEGY_NOT_DISJOINT |
422 | varies | - | routers.mappings |
No guidance yet - quote the code and the request id in your report. |
PLATFORM_DEFAULTS_NOT_FOUND |
404 | Platform defaults row not found. | - | routers.tenant |
No guidance yet - quote the code and the request id in your report. |
PLATFORM_SCHEMA_AI_NOT_CONSENTED |
403 | No AI provider is configured for schema-bearing operations. Enable 'allow_platform_schema_ai' in tenant AI settings, or configure a dedicated AI provider for the 'ai_onboarding' scope. | - | services.ai.invocation |
No guidance yet - quote the code and the request id in your report. |
PLATFORM_SIGNER_NOT_CONFIGURED |
503 | varies | - | routers.well_known |
No guidance yet - quote the code and the request id in your report. |
PLATFORM_SIGNING_KEY_REQUIRED |
422 | SAML sign-in requires a shared platform signing key in production (PLATFORM_SIGNING_KEY_REF / Helm app.saml.signingKeyRef). Without it, each API replica would sign session tokens with its own ephemeral key and logins would fail intermittently. Configure the key, then enable this identity provider. | - | routers.identity_providers |
No guidance yet - quote the code and the request id in your report. |
PREVIEW_NOT_FOUND |
404 | varies | - | routers.discovery |
The auto-config preview is unknown or has expired (previews expire after 1 hour). Run POST /auto-config/preview again and use the new preview id. |
PRINCIPAL_DISABLED |
403 | This account is disabled. Contact your administrator to re-activate it. | - | dependencies.auth |
An administrator disabled this account (#3332). Signing in again cannot help: ask a platform or tenant admin to set the principal back to active (PATCH /principals/{id}); then sign in again. |
PRIVATE_DESTINATION_EXISTS |
409 | This host and port are already on the private destination allowlist. | - | routers.notification_destinations |
The tenant already allows this exact host and port. Nothing to add. |
PRIVATE_DESTINATION_INVALID |
422 | varies | field |
routers.notification_destinations (InvalidPrivateDestination) |
A private destination entry is one exact hostname, or an IP address / CIDR for an IP-literal host, plus one port 1-65535. Remove any scheme, port suffix, path or wildcard from host, and zero the host bits of a CIDR. |
PRIVATE_DESTINATION_LIMIT_REACHED |
409 | varies | - | routers.notification_destinations |
A tenant holds at most 200 private destination entries. Remove entries that are no longer used, or use one CIDR entry for IP-literal hosts in the same subnet. |
PRIVATE_DESTINATION_NEVER_PERMITTED |
422 | varies | field |
routers.notification_destinations (InvalidPrivateDestination) |
Loopback, link-local (including every cloud metadata address), unspecified and multicast addresses, and localhost / metadata-service names, can never be allowlisted. Point the channel at the internal system's own address instead. |
PRIVATE_DESTINATION_NOT_FOUND |
404 | No private destination entry with this id for this tenant. | - | routers.notification_destinations |
The object the request names was not found. Check the id in the request. |
PRIVATE_DESTINATION_NOT_PRIVATE |
422 | varies | field |
routers.notification_destinations (InvalidPrivateDestination) |
The address is not wholly inside a private range, so it needs no entry: public destinations are already permitted over HTTPS. Narrow the CIDR to the private part. |
PROFILE_ALREADY_EXISTS |
409 | A profile for this source/target/tool combination already exists | - | routers.replication_profiles |
No guidance yet - quote the code and the request id in your report. |
PROFILE_DETACH_CONFLICT |
422 | varies | fields |
routers.mappings |
No guidance yet - quote the code and the request id in your report. |
PROFILE_IN_USE |
409 | varies | mapping_count |
routers.replication_profiles |
No guidance yet - quote the code and the request id in your report. |
PROFILE_NOT_FOUND |
404 | varies | - | routers.discovery, routers.mapping_groups, routers.replication_profiles |
The object the request names was not found. Check the id in the request. |
PROFILE_SYSTEM_MISMATCH |
422 | varies | - | routers.mappings |
No guidance yet - quote the code and the request id in your report. |
PROPOSAL_NOT_FOUND |
404 | varies | - | routers.discovery |
The object the request names was not found. Check the id in the request. |
PROPOSAL_REQUIRES_REVIEW |
422 | varies | proposal_id |
routers.discovery |
No guidance yet - quote the code and the request id in your report. |
PROVIDER_ADAPTER_NOT_IMPLEMENTED |
501 | varies | - | routers.ai_providers, services.ai.invocation |
No guidance yet - quote the code and the request id in your report. |
QUERY_ID_NOT_FOUND |
404 | No Paridity run in this tenant issued that query ID. | - | routers.evidence |
The object the request names was not found. Check the id in the request. |
READ_PIN_VIEWS_SYSTEM_MISMATCH |
422 | read_pin_views = true pins a Snowflake VIEW at the readiness instant, but neither side of this mapping is a Snowflake system. | - | routers.mappings |
read_pin_views pins a Snowflake view, so it needs a mapping with a Snowflake side. Turn it off, or map a Snowflake system. |
REASON_REQUIRED |
422 | varies | - | routers.principals, routers.runs |
No guidance yet - quote the code and the request id in your report. |
RECOMMENDATION_NOT_FOUND |
404 | Recommendation not found or already decided. | - | routers.recommendations |
No guidance yet - quote the code and the request id in your report. |
REPLICATION_PROFILE_NOT_FOUND |
404 | varies | - | routers.discovery, routers.mapping_groups (MappingGroupReferenceNotFound), routers.mappings |
The object the request names was not found. Check the id in the request. |
REVEAL_KEY_FAILURE |
409 | varies | - | routers.evidence |
No guidance yet - quote the code and the request id in your report. |
REVEAL_UNAVAILABLE |
409 | varies | - | routers.evidence |
No guidance yet - quote the code and the request id in your report. |
RISK_NOT_COMPUTED |
409 | No pre-run risk score has been computed for this mapping yet. | - | routers.ai |
No guidance yet - quote the code and the request id in your report. |
ROUNDING_MODE_ON_DECRYPT_FIELD |
422 | varies | field |
routers.mappings (DecryptCanonRejection), routers.suggestions (SuggestionNotApplicableError) |
No guidance yet - quote the code and the request id in your report. |
ROUNDING_MODE_ON_FLOAT |
422 | varies | field |
models.api.requests (FieldConfigRejection), routers.mappings (FieldConfigRejection), routers.suggestions (SuggestionNotApplicableError) |
No guidance yet - quote the code and the request id in your report. |
RUN_CONSUMPTION_FAILED |
500 | The run's consumption could not be read. Retry; if it persists, report the request id. | - | routers.runs |
No guidance yet - quote the code and the request id in your report. |
RUN_NOT_FOUND |
404 | varies | - | mcp.tools.compare_run_to_last_passing, mcp.tools.explain_failed_run, mcp.tools.get_run_summary, mcp.tools.get_run_timeline, mcp.tools.triage_run, routers.ai, routers.evidence, routers.evidence_bundles, routers.mappings, routers.runs |
The object the request names was not found. Check the id in the request. |
RUN_NOT_IN_FAILURE_STATE |
409 | varies | - | routers.ai |
No guidance yet - quote the code and the request id in your report. |
RUN_NOT_TERMINAL |
409 | varies | - | routers.evidence_bundles, routers.runs |
No guidance yet - quote the code and the request id in your report. |
SAML_ASSERTION_INVALID |
401 | The SAML assertion could not be validated. | - | routers.saml |
No guidance yet - quote the code and the request id in your report. |
SAML_CONFIG_ON_OIDC |
422 | saml_config applies to SAML providers only. | - | routers.identity_providers |
No guidance yet - quote the code and the request id in your report. |
SAML_LOGIN_FAILED |
502 | Could not build the SAML request. | - | routers.saml |
No guidance yet - quote the code and the request id in your report. |
SAML_SP_SIGNING_KEY_INVALID |
503 | The SAML SP signing key is configured but unusable; see the API log. | - | routers.saml |
No guidance yet - quote the code and the request id in your report. |
SAML_SP_SIGNING_KEY_NEXT_INVALID |
503 | The staged next SAML SP signing key (SAML_SP_SIGNING_KEY_NEXT_REF) is configured but unusable; see the API log. | - | routers.saml |
No guidance yet - quote the code and the request id in your report. |
SAML_SP_SIGNING_KEY_REQUIRED |
422 | Signed SAML requests need a shared SP signing key in production (SAML_SP_SIGNING_KEY_REF / Helm app.saml.spSigningKeyRef): a PEM bundle with the private key and certificate in your secret backend. Configure the key, then enable request signing on this identity provider. | - | routers.identity_providers |
No guidance yet - quote the code and the request id in your report. |
SAML_SP_SIGNING_KEY_UNAVAILABLE |
503 | The SAML SP signing key could not be loaded from the secret backend; see the API log. | - | routers.saml |
No guidance yet - quote the code and the request id in your report. |
SCD_SCOPE_INVALID |
422 | varies | - | routers.mappings |
No guidance yet - quote the code and the request id in your report. |
SCHEDULE_AUDIT_WRITE_FAILED |
503 | Failed to record bulk schedule toggle in audit log. Toggle not applied. | - | routers.schedules |
No guidance yet - quote the code and the request id in your report. |
SCHEDULE_LAG_EXCEEDS_MAPPING |
400 | varies | - | routers.schedules |
No guidance yet - quote the code and the request id in your report. |
SCHEDULE_NAME_CONFLICT |
409 | A schedule with this name already exists for this mapping | - | routers.schedules |
No guidance yet - quote the code and the request id in your report. |
SCHEDULE_NOT_FOUND |
404 | varies | - | routers.schedules |
The object the request names was not found. Check the id in the request. |
SCHEDULING_NOT_ENTITLED |
402 | Scheduling is not available on your current plan. Upgrade to enable scheduled reconciliation. | - | routers.schedules |
No guidance yet - quote the code and the request id in your report. |
SCHEMA_DECISION_COLUMN_ONE_SIDED |
409 | varies | column, missing_side, side |
routers.mappings |
No guidance yet - quote the code and the request id in your report. |
SCHEMA_DECISION_NOT_FOUND |
404 | Schema decision not found. | - | routers.mappings |
The object the request names was not found. Check the id in the request. |
SCHEMA_DECISION_NOT_OPEN |
409 | Decision already dispositioned. | - | routers.mappings |
No guidance yet - quote the code and the request id in your report. |
SCHEMA_DECISION_PHYSICAL_NAME_UNKNOWN |
409 | The true-case physical name for this column is not yet known (the decision predates its capture and the column is not in the schema baseline). Run POST /mappings/{id}/schema-refresh, or wait for the next run to re-observe the column, then retry. | column, side |
routers.mappings |
No guidance yet - quote the code and the request id in your report. |
SCHEMA_DRIFT_PENDING |
400 | Mapping has unresolved schema drift. Use schema-refresh to accept the new schema. | - | routers.runs |
No guidance yet - quote the code and the request id in your report. |
SCHEMA_REFRESH_UNVERIFIED |
409 | varies | outcome, reason, side |
routers.mappings |
No guidance yet - quote the code and the request id in your report. |
SELF_APPROVAL_FORBIDDEN |
403 | varies | - | routers.approvals (ApprovalForbiddenError), routers.governance |
No guidance yet - quote the code and the request id in your report. |
SERVICE_ACCOUNT_NOT_FOUND |
404 | Not Found | - | routers.governance |
The object the request names was not found. Check the id in the request. |
SESSION_MAX_LIFETIME |
401 | Session reached its maximum lifetime; please sign in again. | - | routers.me |
No guidance yet - quote the code and the request id in your report. |
SESSION_REVOKED |
401 | Session was ended by the identity provider; please sign in again. | - | routers.me |
No guidance yet - quote the code and the request id in your report. |
SSO_REQUIRED |
403 | This tenant requires SSO login. Local/platform-issuer login is not permitted. | - | dependencies.auth |
No guidance yet - quote the code and the request id in your report. |
STALE_WRITE |
409 | varies | current_version |
optimistic_lock |
No guidance yet - quote the code and the request id in your report. |
SUBSCRIPTION_NOT_ASSIGNED |
402 | No subscription tier is assigned to this tenant. Creating or enabling mappings and schedules, bulk import and auto-configuration apply are refused until a platform operator assigns one. Existing configuration stays viewable and editable; reads, evidence and runs are unaffected. | - | services.entitlement_service |
No guidance yet - quote the code and the request id in your report. |
SUBSCRIPTION_NOT_FOUND |
404 | Subscription not found or not owned by caller. | - | routers.subscriptions |
The object the request names was not found. Check the id in the request. |
SUBSCRIPTION_SUSPENDED |
402 | varies | - | routers.runs, services.entitlement_service |
No guidance yet - quote the code and the request id in your report. |
SUGGESTION_ALREADY_APPLIED |
422 | varies | - | routers.suggestions (SuggestionNotApplicableError) |
No guidance yet - quote the code and the request id in your report. |
SUGGESTION_FIELD_MISSING |
422 | varies | - | routers.suggestions (SuggestionNotApplicableError) |
No guidance yet - quote the code and the request id in your report. |
SUGGESTION_NOT_APPLICABLE |
422 | varies | - | routers.suggestions (SuggestionNotApplicableError) |
No guidance yet - quote the code and the request id in your report. |
SYSTEM_IN_USE |
409 | varies | - | routers.systems |
No guidance yet - quote the code and the request id in your report. |
SYSTEM_NAME_CONFLICT |
409 | varies | - | routers.systems |
No guidance yet - quote the code and the request id in your report. |
SYSTEM_NOT_FOUND |
404 | varies | - | mcp.tools._discovery_helpers, routers.discovery, routers.mappings, routers.metrics, routers.replication_profiles, routers.systems |
The object the request names was not found. Check the id in the request. |
TENANT_DEFAULTS_NOT_FOUND |
404 | Tenant defaults row not found. | - | routers.tenant |
No guidance yet - quote the code and the request id in your report. |
TIMESTAMP_ROUNDING_ON_DECRYPT_FIELD |
422 | varies | field |
routers.mappings (DecryptCanonRejection), routers.suggestions (SuggestionNotApplicableError) |
No guidance yet - quote the code and the request id in your report. |
TIMESTAMP_ROUNDING_ON_NON_TIMESTAMP |
422 | varies | field |
models.api.requests (FieldConfigRejection), routers.mappings (DecryptCanonRejection), routers.mappings (FieldConfigRejection), routers.suggestions (SuggestionNotApplicableError) |
No guidance yet - quote the code and the request id in your report. |
TIMESTAMP_ROUNDING_WITH_FIELD_PRECISION |
422 | varies | field |
models.api.requests (FieldConfigRejection), routers.mappings (FieldConfigRejection), routers.suggestions (SuggestionNotApplicableError) |
No guidance yet - quote the code and the request id in your report. |
TOOL_CONFIG_INCOMPLETE |
409 | varies | tool |
routers.replication_profiles |
No guidance yet - quote the code and the request id in your report. |
TOO_MANY_ITEMS |
422 | At most 50 diffs may be revealed per call. | - | routers.evidence |
No guidance yet - quote the code and the request id in your report. |
TRANSFORM_CHAIN_INVALID |
422 | Unprocessable Entity | errors, field |
routers.mappings |
No guidance yet - quote the code and the request id in your report. |
TRIAGE_CACHE_MISS |
404 | No cached triage exists for this run with the active provider config. | - | routers.ai |
No guidance yet - quote the code and the request id in your report. |
TRIAL_ALREADY_USED |
409 | This tenant has already consumed its trial. A trial is granted once per tenant; an extension is an operator database change with its own audit entry. | - | routers.subscription_status |
No guidance yet - quote the code and the request id in your report. |
TSTZ_DECRYPT_PLAINTEXT |
422 | varies | field |
routers.mappings (DecryptCanonRejection), routers.suggestions (SuggestionNotApplicableError) |
No guidance yet - quote the code and the request id in your report. |
UNAUTHENTICATED |
401 | varies | - | dependencies.auth, middleware.auth, middleware.idempotency, routers.me |
Send a valid bearer token, or sign in again if it has expired. If the message says authentication is temporarily unavailable, the sign-on provider could not be reached - retry, and report it with the request id if it persists. |
UNKNOWN_TENANT |
401 | varies | - | dependencies.auth |
No guidance yet - quote the code and the request id in your report. |
UNKNOWN_TIER |
422 | varies | - | routers.subscription_status |
No guidance yet - quote the code and the request id in your report. |
VALIDATION_ERROR |
400, 404, 409, 422 | varies | key |
main, routers.anomaly_policies, routers.grants, routers.mappings, routers.notification_rules, routers.principals, routers.recommendations, routers.runs, routers.schedules, routers.systems, routers.tenant |
The request was rejected as invalid. error.message says what was rejected; when the body or a parameter failed validation, error.detail lists each invalid field. Correct the request and resend. |
HTTP_<status> |
any | The HTTP status phrase (for example Not Found), or the detail text when the detail is a plain string |
- | any route whose error carries no code (a plain-string, list or absent detail) | No guidance yet - quote the code and the request id in your report. |
241 codes from 444 raising sites, plus the HTTP_<status> family.