<!-- x-generated: Generated by the Hyperscale artifact pipeline; do not edit by hand -->

# Errors

> Every Hyperscale error carries a stable code, an HTTP status, and machine-readable cause/action/remediation guidance. This is the public tenant-SDK error vocabulary; the admin and system OpenAPI documents carry the full internal taxonomy. Generated from the Hyperscale contract.

Each entry reads `code`: HTTP status `[retryable, idempotencySafe]` followed by cause, action, and remediation. `retryable` marks errors safe to retry unchanged; `idempotencySafe` marks errors where the mutation did not take effect, so replaying the same `Idempotency-Key` is safe. Structural errors apply to every operation; domain errors apply only to the operations that declare them.

### Structural

- csrf_token_invalid: HTTP 403 [retryable=false, idempotencySafe=true] cause=A browser session mutation did not carry a current Hyperscale CSRF token. action=Refresh the portal page or session, then submit the form again. remediation=Use the portal login flow to refresh the session before retrying the mutation.
- idempotency_conflict: HTTP 409 [retryable=false, idempotencySafe=true] cause=The request reused an Idempotency-Key for a different logical mutation. action=Reuse an Idempotency-Key only with the exact same method, path, body, and tenant. remediation=Generate a new key for the new mutation, or replay the original request unchanged.
- idempotency_required: HTTP 400 [retryable=false, idempotencySafe=true] cause=The operation is a mutation and Hyperscale requires a replay key before executing it. action=Send an Idempotency-Key header for this mutation. remediation=Let the SDK create the key automatically, or provide a stable key per logical mutation.
- internal_error: HTTP 500 [retryable=false, idempotencySafe=false] cause=Hyperscale hit an unexpected server-side condition and hid internal implementation details from this audience. action=Capture the request ID, operation ID, and receipt ID if present before escalating. remediation=Retry only if the operation is documented as retryable; otherwise contact Hyperscale support with the tracing IDs.
- invalid_request: HTTP 400 [retryable=false, idempotencySafe=true] cause=The request does not match the API reference. action=Compare the request path, method, headers, and JSON body to the expected request shape. remediation=Use the SDK input types or API reference, then resend with valid JSON and required headers.
- missing_required_permission: HTTP 403 [retryable=false, idempotencySafe=true] cause=The signed-in member's current role does not grant the permission required for this operation. action=Ask an organization owner to assign a role containing the required portal permission, then sign in again if your existing session was revoked by the role change. remediation=Review the member's role in the Team desk, add only the required permission to a custom role or assign an appropriate seeded role, and retry with that member's session.
- missing_required_product_capability: HTTP 403 [retryable=false, idempotencySafe=true] cause=The Product was created without a capability required by this operation. action=Call the operation from a Product whose provisioned capability set includes the required capability. remediation=Create or replace the Product on a path that provisions the required capability before creating the API key.
- missing_required_scope: HTTP 403 [retryable=false, idempotencySafe=true] cause=The credential is valid but does not grant one or more operation scopes. action=Create or rotate an API key with the required access. remediation=Use the portal API key page or `api_key.sandbox.create` after Product creation to create a scoped key.
- not_found: HTTP 404 [retryable=false, idempotencySafe=true] cause=No Hyperscale route matched the requested path and method. action=Verify the URL and request method against the API reference. remediation=Use the SDK method or OpenAPI path for the operation instead of constructing the URL by hand.
- operation_not_allowed: HTTP 403 [retryable=false, idempotencySafe=true] cause=The credential authenticated, but the operation is outside the allowlist its Product's composition produced. The message names the operation and the capability that would admit it. action=Call an operation inside this key's composition, or recompose the Product to include the one you want. remediation=Compose the Product with the named capability and issue a key from it, or use the scoped SDK/OpenAPI for this key, which publishes exactly the operations it can run.
- product_access_suspended: HTTP 403 [retryable=false, idempotencySafe=true] cause=The Product is disabled or closed, so its credentials are suspended in every environment. action=Use an active Product before sending traffic. remediation=Reactivate the Product from its settings page (or replace it), then retry with credentials of the active Product.
- product_activation_required: HTTP 403 [retryable=false, idempotencySafe=true] cause=The live Product or required live capability is not active yet. action=Activate the Product and live-enable the required capability before sending production traffic. remediation=Complete Product activation, satisfy live requirements, and enable the capability before retrying.
- rate_limited: HTTP 429 [retryable=false, idempotencySafe=true] cause=The caller exceeded Hyperscale's fair use request rate for its credential, or its IP address when unauthenticated. action=Back off for the response retry window before sending the next request. remediation=Spread bursts, batch reads, and respect the response rate limit headers.
- request_body_too_large: HTTP 413 [retryable=false, idempotencySafe=true] cause=The JSON request body exceeded Hyperscale's accepted payload size. action=Reduce the request body size and move large payloads to supported external storage. remediation=Send only contract fields and references needed by the operation, then retry with a smaller body.
- resource_not_found: HTTP 404 [retryable=false, idempotencySafe=true] cause=The requested resource does not exist in the credential's visible scope. action=Confirm the resource ID belongs to the same tenant, product, and environment as the credential. remediation=Read or create the resource in the same sandbox/live environment before calling this operation.
- resource_reader_unavailable: HTTP 503 [retryable=false, idempotencySafe=false] cause=A generated read model could not serve the request at this moment. action=Retry with the same request after the read model or backing dependency recovers. remediation=Use SDK retries for eligible reads; keep the same tenant/environment and escalate if it persists.
- state_conflict: HTTP 409 [retryable=false, idempotencySafe=true] cause=The operation conflicts with the current durable state of the resource. action=Refresh the resource and retry from its current lifecycle state. remediation=List or retrieve the resource first, then call the next valid operation for its state.
- state_constraint_failed: HTTP 422 [retryable=false, idempotencySafe=true] cause=The request is syntactically valid but violates a business-state constraint. action=Fix the semantic field combination called out by the error details. remediation=Use the operation docs and typed input model to adjust the values before retrying.
- system_principal_required: HTTP 403 [retryable=false, idempotencySafe=true] cause=The operation is restricted to the system principal. action=Use an operator/system credential instead of a tenant API key. remediation=Run the equivalent tenant-safe operation when available, or route through the admin/system surface.
- tenant_mismatch: HTTP 403 [retryable=false, idempotencySafe=true] cause=The request mixed tenant-owned identifiers across tenant boundaries. action=Use resource IDs, product IDs, and credentials from the same tenant. remediation=Recreate the request from the current tenant's product in the portal or from the generated SDK context.
- tenant_not_found: HTTP 404 [retryable=false, idempotencySafe=true] cause=The credential resolved to a tenant Hyperscale cannot find. action=Sign in again or use an API key issued for an existing tenant. remediation=Sign in, create a product, and create a fresh product API key before retrying.
- unauthorized: HTTP 403 [retryable=false, idempotencySafe=true] cause=The request did not include a valid Hyperscale bearer credential for this environment. action=Authenticate with a product API key for REST/OpenAPI, SDK, or MCP calls, or use a current portal session for browser calls. remediation=Sign in, create a product, create a sandbox API key, set HYPERSCALE_API_KEY, and retry with Authorization: Bearer <key>.
- validation_failed: HTTP 400 [retryable=false, idempotencySafe=true] cause=The submitted input did not match the expected form. action=Fix missing, malformed, or out-of-range fields reported in the error details. remediation=Use the SDK types, examples, and API reference to rebuild the request.

### Domain

- account_close_balance_nonzero: HTTP 409 [retryable=false, idempotencySafe=true; operations=1] cause=The request contradicts the Account the platform has already durably recorded (`account close balance nonzero`). action=Re-read the Account with `account.retrieve` and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the Account as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- account_freeze_plane_forbidden: HTTP 409 [retryable=false, idempotencySafe=true; operations=3] cause=The account carries a platform-imposed freeze, and tenant-plane unfreeze or close cannot lift or bypass it. action=Stop retrying from this surface; the freeze on this account is not yours to lift. remediation=Contact platform support about the account restriction; the transition succeeds once the platform lifts its freeze.
- account_frozen: HTTP 409 [retryable=false, idempotencySafe=true; operations=103] cause=The account is frozen. Debits always refuse while frozen; some freezes also refuse credits. The error message carries the only reason wording Hyperscale exposes. action=Use a different account for this transfer leg, or have the freeze lifted before retrying. remediation=Unfreeze the account through its lifecycle surface if you imposed the freeze; a freeze you cannot lift was imposed by the platform and clears only when the platform lifts it.
- account_ledger_mapping_conflict: HTTP 409 [retryable=false, idempotencySafe=true; operations=88] cause=The request contradicts the Account the platform has already durably recorded (`account ledger mapping conflict`). action=Re-read the Account with `account.retrieve` and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the Account as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- account_ledger_mapping_dangling: HTTP 409 [retryable=false, idempotencySafe=true; operations=4] cause=This Account names the ledger account that holds its money, and the ledger does not have that account. An Account and its ledger side are written together, so this is not a half-made Account: this deployment's records and the ledger it is reading have drifted apart. That happens when the engine is pointed at a different ledger cluster than the one these Accounts were created against, or when a cluster is restored to a point behind them. action=Send the error details to whoever operates this Hyperscale deployment; no change to the request will clear this refusal, and no figures were produced. remediation=Only an operator can settle which ledger this deployment reads; until then the balance is unknowable and the refusal is the honest answer, because the alternative is reporting a figure for money that may well exist somewhere else. Other Accounts on the same organization answer normally -- a refusal on one Account and not its neighbours narrows the drift to that Account's mapping rather than the connection.
- account_ledger_unprovisioned: HTTP 409 [retryable=false, idempotencySafe=true; operations=6] cause=This Account exists but has no ledger account behind it, so it holds no balances and no movements to report. Creating an Account provisions its ledger side; an Account in this state was recorded before that provisioning completed, or the provisioning did not finish. action=Read the Account back and confirm it finished provisioning, then run this read again. No figures were produced. remediation=Nothing about the request changes this, and a retry only succeeds once provisioning completes. If the Account has been in this state for more than a moment its ledger provisioning failed and an operator of this deployment has to finish it -- until then no money can enter or leave the Account, so there is nothing for a balance or a statement to report.
- account_not_found: HTTP 404 [retryable=false, idempotencySafe=true; operations=115] cause=No Account matches the `accountId` this request referenced (`account not found`). action=List Accounts in the same tenant, product, and environment, then retry with the `accountId` that read returns. remediation=Create or select the Account in the environment the call runs against; ids never carry across tenants, or across sandbox and live.
- account_role_not_financial_addressable: HTTP 400 [retryable=false, idempotencySafe=true; operations=1] cause=The operation refused the request on its `account role not financial addressable` contract condition. action=Read the error details, then the operation reference for this Account, before retrying. remediation=Correct the request against the generated SDK models and a fresh read of the Account; if the shape is already right, the product may be missing the capability this operation needs.
- account_role_owner_mismatch: HTTP 400 [retryable=false, idempotencySafe=true; operations=1] cause=The request contradicts the Account the platform has already durably recorded (`account role owner mismatch`). action=Re-read the Account with `account.retrieve` and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the Account as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- account_status_forbidden: HTTP 409 [retryable=false, idempotencySafe=true; operations=7] cause=The account is not in a state that allows this lifecycle transition (for example, freezing a closed account or closing a frozen one). The current status is returned in the error details. action=Read the account's current status and choose the lifecycle operation valid from that state. remediation=Refresh the account and apply the transition allowed from its current status; the account reference itself is valid, so no new account is needed.
- aggregate_condition_unmet: HTTP 409 [retryable=false, idempotencySafe=true; operations=9] cause=The request contradicts the resource the platform has already durably recorded (`aggregate condition unmet`). action=Re-read the resource this request referenced and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the resource as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- api_key_not_found: HTTP 404 [retryable=false, idempotencySafe=true; operations=2] cause=No API key matches the `apiKeyId` this request referenced (`api key not found`). action=List API keys in the same tenant, product, and environment, then retry with the `apiKeyId` that read returns. remediation=Create or select the API key in the environment the call runs against; ids never carry across tenants, or across sandbox and live.
- api_key_status_forbidden: HTTP 409 [retryable=false, idempotencySafe=true; operations=1] cause=The API key's current lifecycle state does not allow this transition (`api key status forbidden`). action=Read the API key with `api_key.retrieve` and pick the lifecycle operation its current status allows. remediation=Apply a transition the API key's current status permits. The reference itself is still valid, so no new API key is needed.
- bank_connection_credentials_incomplete: HTTP 422 [retryable=false, idempotencySafe=true; operations=2] cause=The stored credential set does not cover what the declared credential kind needs — for example an OAuth client kind without an OAuth client reference, or a signing-cert kind without certificate material. action=Supply every credential reference the declared credential kind requires (and the master IBAN before testing), then retry. remediation=Re-run `tenant.bank_connection.configure` with the missing vault references. Credentials travel only as vault references; raw secret material is never accepted.
- bank_connection_not_configured: HTTP 422 [retryable=false, idempotencySafe=true; operations=1] cause=The connection test needs a configured bank connection and the organization has none. action=Configure the organization's bank connection with `tenant.bank_connection.configure`, then run the test again. remediation=Submit the partner-bank credential references and the bank-issued master IBAN once; the test then proves the connection with read-only probes and activates it when every required step passes.
- beneficiary_activation_required: HTTP 409 [retryable=false, idempotencySafe=true; operations=2] cause=The beneficiary has no accepted sponsor-bank activation, so it cannot become payable and no payout was created. action=Wait for the sponsor bank to accept the beneficiary's registration and for the system to activate it, then retry the refused operation with a new Idempotency-Key. remediation=Verify the beneficiary's IBAN and name, wait for the sponsor bank's acceptance, then let the system-only beneficiary.activate operation consume it. This 409 receipt is terminal: replaying its Idempotency-Key returns the same refusal, so the corrected request needs a new Idempotency-Key.
- beneficiary_id_reserved: HTTP 409 [retryable=false, idempotencySafe=true; operations=1] cause=The requested beneficiary id is the platform-reserved identity of the per-tenant revenue beneficiary that only Hyperscale's billing sweep may provision. action=Create the beneficiary under a different id (or omit `beneficiaryId` and let Hyperscale assign one); this id is reserved for Hyperscale's own invoice collection. remediation=The revenue beneficiary is created automatically the first time the billing sweep runs -- no tenant ever needs to create it. Pick any other id (or none) for your own beneficiaries and retry with a new Idempotency-Key.
- beneficiary_verification_required: HTTP 409 [retryable=false, idempotencySafe=true; operations=3] cause=The beneficiary has no full-match verification with an exactly bound External Confirmation, so it cannot be activated or paid and no payout was created. action=Run beneficiary.verify for the beneficiary's exact IBAN and legal name, obtain a full match, complete activation, then retry the refused operation with a new Idempotency-Key. remediation=Create a fresh provider-backed verification for the exact IBAN and normalized legal name. Negative grades and incomplete or mismatched confirmation bindings cannot make a beneficiary payable. This 409 receipt is terminal, so the corrected request needs a new Idempotency-Key.
- beneficiary_verification_unavailable: HTTP 503 [retryable=true, idempotencySafe=false; operations=2] cause=The platform could not durably complete the `beneficiary verification unavailable` step, so the Beneficiary verification may or may not have been written. action=Capture the request id and the receipt or operation id before retrying or escalating; do not re-send under a fresh key until you know whether the Beneficiary verification was written. remediation=Treat the Beneficiary verification's side effects as unknown unless a terminal receipt says otherwise; retry only operations documented as retryable, and replay them with the SAME idempotency key.
- billing_adjustment_direction_mismatch: HTTP 400 [retryable=false, idempotencySafe=true; operations=1] cause=The request contradicts the Billing adjustment the platform has already durably recorded (`billing adjustment direction mismatch`). action=Re-read the Billing adjustment with `billing_adjustment.retrieve` and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the Billing adjustment as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- billing_adjustment_target_required: HTTP 400 [retryable=false, idempotencySafe=true; operations=1] cause=The operation cannot run against this Billing adjustment until the `billing adjustment target required` prerequisite exists. action=Supply the field, capability, evidence, or configuration the error details name for this Billing adjustment, then call the operation again. remediation=Complete the prerequisite through the surface that owns it -- the operation reference for this Billing adjustment names it -- and the same call then succeeds unchanged.
- billing_manifest_divergence: HTTP 409 [retryable=false, idempotencySafe=true; operations=1] cause=A product has a billable meter that its frozen cost manifest does not name, or its list-price usage subtotal differs from the manifest evaluated at the period readings. No snapshot or invoice line was written. action=Stop the period snapshot and inspect the first mismatching meter, the rated usage subtotal, and the frozen manifest figure in the error details. remediation=Correct the meter attribution or recompose the product under the current cost table, then retry the snapshot. Do not change or bypass the frozen manifest. Meter discounts apply only after this check as separate credit lines.
- billing_period_conflict: HTTP 409 [retryable=false, idempotencySafe=true; operations=1] cause=The request contradicts the Billing period the platform has already durably recorded (`billing period conflict`). action=Re-read the Billing period with `billing_period.retrieve` and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the Billing period as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- billing_period_currency_mismatch: HTTP 400 [retryable=false, idempotencySafe=true; operations=2] cause=The request contradicts the Billing period the platform has already durably recorded (`billing period currency mismatch`). action=Re-read the Billing period with `billing_period.retrieve` and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the Billing period as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- billing_period_invoice_exists: HTTP 409 [retryable=false, idempotencySafe=true; operations=1] cause=The request contradicts the Billing period the platform has already durably recorded (`billing period invoice exists`). action=Re-read the Billing period with `billing_period.retrieve` and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the Billing period as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- billing_period_not_found: HTTP 404 [retryable=false, idempotencySafe=true; operations=7] cause=No Billing period matches the `billingPeriodId` this request referenced (`billing period not found`). action=List Billing periods in the same tenant, product, and environment, then retry with the `billingPeriodId` that read returns. remediation=Create or select the Billing period in the environment the call runs against; ids never carry across tenants, or across sandbox and live.
- billing_period_product_mismatch: HTTP 409 [retryable=false, idempotencySafe=true; operations=2] cause=The request contradicts the Billing period the platform has already durably recorded (`billing period product mismatch`). action=Re-read the Billing period with `billing_period.retrieve` and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the Billing period as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- billing_period_snapshot_conflict: HTTP 409 [retryable=false, idempotencySafe=true; operations=1] cause=The request contradicts the Billing period the platform has already durably recorded (`billing period snapshot conflict`). action=Re-read the Billing period with `billing_period.retrieve` and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the Billing period as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- billing_period_status_forbidden: HTTP 409 [retryable=false, idempotencySafe=true; operations=3] cause=The Billing period's current lifecycle state does not allow this transition (`billing period status forbidden`). action=Read the Billing period with `billing_period.retrieve` and pick the lifecycle operation its current status allows. remediation=Apply a transition the Billing period's current status permits. The reference itself is still valid, so no new Billing period is needed.
- billing_standing_blocked: HTTP 422 [retryable=false, idempotencySafe=true; operations=3] cause=The organization has finalized invoices its credit bucket could not cover, so new product creation and go-live are paused until the balance clears. action=Settle the organization's unpaid finalized invoices by funding the credit bucket, then retry. `tenant.treasury.retrieve` reports the unpaid count and amount. remediation=Fund the credit bucket to cover the unpaid amount; the billing cycle collects automatically on its next pass, or the invoice can be paid directly. Once standing returns to good the blocked operation succeeds unchanged.
- billing_subscription_conflict: HTTP 409 [retryable=false, idempotencySafe=true; operations=1] cause=The request contradicts the Billing subscription the platform has already durably recorded (`billing subscription conflict`). action=Re-read the Billing subscription with `billing_subscription.retrieve` and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the Billing subscription as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- blueprint_not_found: HTTP 404 [retryable=false, idempotencySafe=true; operations=1] cause=No resource matches the `id` this request referenced (`blueprint not found`). action=List the collection this request referenced in the same tenant, product, and environment, then retry with an `id` that listing returns. remediation=Create or select the resource in the environment the call runs against; ids never carry across tenants, or across sandbox and live.
- capability_not_available_in_sandbox: HTTP 400 [retryable=false, idempotencySafe=true; operations=2] cause=The operation refused the request on its `capability not available in sandbox` contract condition. action=Read the error details, then the operation reference for this resource, before retrying. remediation=Correct the request against the generated SDK models and a fresh read of the resource; if the shape is already right, the product may be missing the capability this operation needs.
- capability_not_configured: HTTP 400 [retryable=false, idempotencySafe=true; operations=5] cause=The operation refused the request on its `capability not configured` contract condition. action=Read the error details, then the operation reference for this resource, before retrying. remediation=Correct the request against the generated SDK models and a fresh read of the resource; if the shape is already right, the product may be missing the capability this operation needs.
- capability_not_enabled: HTTP 400 [retryable=false, idempotencySafe=true; operations=2] cause=The key mint asked for a capability scope that includes capabilities this product does not have enabled (for live keys: live-enabled). No key was created. action=Drop the offending entries from `capabilities`, or enable those capabilities on the product first, then retry. The error details name the refused entries. remediation=Read the product's capabilities to see what is enabled, then either mint the key over the enabled subset or enable the missing capabilities first. Omitting `capabilities` scopes the key to everything enabled on the product.
- catalog_overlay_collision: HTTP 409 [retryable=false, idempotencySafe=true; operations=1] cause=The submitted catalog defines an existing shared id with different content, so the tenant overlay was not changed. action=Rename the tenant definition or reuse the shared catalog definition byte-for-byte, then submit a new authoring request with a new Idempotency-Key. remediation=Shared ids may be reused only when their canonical definitions match exactly. Rename the tenant definition or submit the exact shared definition, then author a new revision.
- catalog_proof_failed: HTTP 422 [retryable=false, idempotencySafe=true; operations=1] cause=The submitted HSX failed parsing, checking, lowering, UDL validation, catalog law proof, or operation compilation. No catalog revision was stored. action=Fix every diagnostic in the error details, then submit the corrected source with a new Idempotency-Key. remediation=Use each diagnostic's stage, path, law, and source span to correct the source. The failed candidate did not create a revision or advance the sandbox overlay head.
- catalog_revision_conflict: HTTP 409 [retryable=false, idempotencySafe=true; operations=1] cause=The expected head revision no longer matches the tenant's sandbox catalog head, so the compare-and-swap refused the update. action=Read the current sandbox catalog head, rebase the source onto that revision, and submit a new request with its revision id and a new Idempotency-Key. remediation=Resolve the concurrent catalog change against the current head before authoring another revision. The refused request stored no revision and did not move the head.
- catalog_source_limit_exceeded: HTTP 413 [retryable=false, idempotencySafe=true; operations=1] cause=The authoring candidate exceeded a catalog materializer budget before publication, so no catalog revision was stored. action=Reduce the submitted source, AST, law evaluation count, or compiled output to the limit named in the error details, then retry with a new Idempotency-Key. remediation=Split or simplify the catalog source until it fits every reported budget. The failed candidate did not create a revision or advance the sandbox overlay head.
- check_prerequisite_unmet: HTTP 409 [retryable=false, idempotencySafe=true; operations=0] cause=The request contradicts the resource the platform has already durably recorded (`check prerequisite unmet`). action=Re-read the resource this request referenced and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the resource as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- collection_authorization_unverified: HTTP 409 [retryable=false, idempotencySafe=true; operations=2] cause=The request contradicts the Collection the platform has already durably recorded (`collection authorization unverified`). action=Re-read the Collection with `collection.retrieve` and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the Collection as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- collection_not_found: HTTP 404 [retryable=false, idempotencySafe=true; operations=2] cause=No Collection matches the `collectionId` this request referenced (`collection not found`). action=List Collections in the same tenant, product, and environment, then retry with the `collectionId` that read returns. remediation=Create or select the Collection in the environment the call runs against; ids never carry across tenants, or across sandbox and live.
- collection_status_forbidden: HTTP 409 [retryable=false, idempotencySafe=true; operations=2] cause=The Collection's current lifecycle state does not allow this transition (`collection status forbidden`). action=Read the Collection with `collection.retrieve` and pick the lifecycle operation its current status allows. remediation=Apply a transition the Collection's current status permits. The reference itself is still valid, so no new Collection is needed.
- collection_transfer_mismatch: HTTP 409 [retryable=false, idempotencySafe=true; operations=2] cause=The request contradicts the Collection the platform has already durably recorded (`collection transfer mismatch`). action=Re-read the Collection with `collection.retrieve` and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the Collection as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- consent_expired: HTTP 403 [retryable=false, idempotencySafe=true; operations=1] cause=The operation refused the request on its `consent expired` contract condition. action=Read the error details, then the operation reference for this Consent, before retrying. remediation=Correct the request against the generated SDK models and a fresh read of the Consent; if the shape is already right, the product may be missing the capability this operation needs.
- consent_not_active: HTTP 409 [retryable=false, idempotencySafe=true; operations=1] cause=The request contradicts the Consent the platform has already durably recorded (`consent not active`). action=Re-read the Consent with `consent.retrieve` and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the Consent as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- consent_not_found: HTTP 404 [retryable=false, idempotencySafe=true; operations=1] cause=No Consent matches the `consentId` this request referenced (`consent not found`). action=List Consents in the same tenant, product, and environment, then retry with the `consentId` that read returns. remediation=Create or select the Consent in the environment the call runs against; ids never carry across tenants, or across sandbox and live.
- consent_revoked: HTTP 403 [retryable=false, idempotencySafe=true; operations=1] cause=The operation refused the request on its `consent revoked` contract condition. action=Read the error details, then the operation reference for this Consent, before retrying. remediation=Correct the request against the generated SDK models and a fresh read of the Consent; if the shape is already right, the product may be missing the capability this operation needs.
- credit_account_status_forbidden: HTTP 400 [retryable=false, idempotencySafe=true; operations=2] cause=The credit account for this charge is not open. It is frozen or closed, so Hyperscale will not post to it. action=Use a credit account whose status is `open`, or unfreeze it, before retrying the charge. remediation=Read the account status, unfreeze it (or select an open account), then resubmit the charge.
- cross_tenant_transfer_forbidden: HTTP 409 [retryable=false, idempotencySafe=true; operations=132] cause=The request contradicts the resource the platform has already durably recorded (`cross tenant transfer forbidden`). action=Re-read the resource this request referenced and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the resource as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- currency_mismatch: HTTP 400 [retryable=false, idempotencySafe=true; operations=132] cause=The currency on the request does not match the settlement currency of the account or transfer it targets. Hyperscale never converts between currencies, so the two must be identical. action=Read the target account's currency (for example with `account.balance.retrieve`) and resend with that same currency and a minor-unit amount denominated in it. remediation=This is deterministic. Retrying with the same currency fails identically. Correct the request's currency field, or move the money through an account already denominated in the required currency, then retry.
- customer_access_compliance_forbidden: HTTP 403 [retryable=false, idempotencySafe=true; operations=130] cause=The request contradicts the Customer access the platform has already durably recorded (`customer access compliance forbidden`). action=Re-read the Customer access with `customer_access.retrieve` and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the Customer access as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- customer_access_exists: HTTP 409 [retryable=false, idempotencySafe=true; operations=1] cause=The request contradicts the Customer access the platform has already durably recorded (`customer access exists`). action=Re-read the Customer access with `customer_access.retrieve` and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the Customer access as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- customer_access_lifecycle_status_forbidden: HTTP 409 [retryable=false, idempotencySafe=true; operations=3] cause=The Customer access's current lifecycle state does not allow this transition (`customer access lifecycle status forbidden`). action=Read the Customer access with `customer_access.retrieve` and pick the lifecycle operation its current status allows. remediation=Apply a transition the Customer access's current status permits. The reference itself is still valid, so no new Customer access is needed.
- customer_access_not_found: HTTP 404 [retryable=false, idempotencySafe=true; operations=4] cause=No Customer access matches the `customerAccessId` this request referenced (`customer access not found`). action=List Customer accesses in the same tenant, product, and environment, then retry with the `customerAccessId` that read returns. remediation=Create or select the Customer access in the environment the call runs against; ids never carry across tenants, or across sandbox and live.
- customer_access_required: HTTP 403 [retryable=false, idempotencySafe=true; operations=131] cause=The operation cannot run against this Customer access until the `customer access required` prerequisite exists. action=Supply the field, capability, evidence, or configuration the error details name for this Customer access, then call the operation again. remediation=Complete the prerequisite through the surface that owns it -- the operation reference for this Customer access names it -- and the same call then succeeds unchanged.
- customer_access_status_forbidden: HTTP 409 [retryable=false, idempotencySafe=true; operations=2] cause=The Customer access's current lifecycle state does not allow this transition (`customer access status forbidden`). action=Read the Customer access with `customer_access.retrieve` and pick the lifecycle operation its current status allows. remediation=Apply a transition the Customer access's current status permits. The reference itself is still valid, so no new Customer access is needed.
- customer_disable_open_activity: HTTP 409 [retryable=false, idempotencySafe=true; operations=1] cause=The request contradicts the Customer the platform has already durably recorded (`customer disable open activity`). action=Re-read the Customer with `customer.retrieve` and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the Customer as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- customer_erased: HTTP 410 [retryable=false, idempotencySafe=true; operations=3] cause=The operation refused the request on its `customer erased` contract condition. action=Read the error details, then the operation reference for this Customer, before retrying. remediation=Correct the request against the generated SDK models and a fresh read of the Customer; if the shape is already right, the product may be missing the capability this operation needs.
- customer_lifecycle_status_forbidden: HTTP 409 [retryable=false, idempotencySafe=true; operations=3] cause=The Customer's current lifecycle state does not allow this transition (`customer lifecycle status forbidden`). action=Read the Customer with `customer.retrieve` and pick the lifecycle operation its current status allows. remediation=Apply a transition the Customer's current status permits. The reference itself is still valid, so no new Customer is needed.
- customer_not_found: HTTP 404 [retryable=false, idempotencySafe=true; operations=139] cause=No Customer matches the `customerId` this request referenced (`customer not found`). action=List Customers in the same tenant, product, and environment, then retry with the `customerId` that read returns. remediation=Create or select the Customer in the environment the call runs against; ids never carry across tenants, or across sandbox and live.
- customer_status_forbidden: HTTP 403 [retryable=false, idempotencySafe=true; operations=131] cause=The Customer's current lifecycle state does not allow this transition (`customer status forbidden`). action=Read the Customer with `customer.retrieve` and pick the lifecycle operation its current status allows. remediation=Apply a transition the Customer's current status permits. The reference itself is still valid, so no new Customer is needed.
- debit_account_status_forbidden: HTTP 400 [retryable=false, idempotencySafe=true; operations=2] cause=The debit account for this charge is not open. It is frozen or closed, so Hyperscale will not post to it. action=Use a debit account whose status is `open`, or unfreeze it, before retrying the charge. remediation=Read the account status, unfreeze it (or select an open account), then resubmit the charge.
- deposit_not_found: HTTP 404 [retryable=false, idempotencySafe=true; operations=1] cause=No Deposit matches the `depositId` this request referenced (`deposit not found`). action=List Deposits in the same tenant, product, and environment, then retry with the `depositId` that read returns. remediation=Create or select the Deposit in the environment the call runs against; ids never carry across tenants, or across sandbox and live.
- deposit_status_forbidden: HTTP 409 [retryable=false, idempotencySafe=true; operations=1] cause=The Deposit's current lifecycle state does not allow this transition (`deposit status forbidden`). action=Read the Deposit with `deposit.retrieve` and pick the lifecycle operation its current status allows. remediation=Apply a transition the Deposit's current status permits. The reference itself is still valid, so no new Deposit is needed.
- deposit_transfer_mismatch: HTTP 409 [retryable=false, idempotencySafe=true; operations=1] cause=The request contradicts the Deposit the platform has already durably recorded (`deposit transfer mismatch`). action=Re-read the Deposit with `deposit.retrieve` and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the Deposit as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- destination_account_status_forbidden: HTTP 400 [retryable=false, idempotencySafe=true; operations=101] cause=The destination (credit) account is not open. It is frozen or closed, so Hyperscale will not credit it. action=Use a destination account whose status is `open`, or unfreeze the intended account, before retrying. remediation=Read the account status, unfreeze it (or select an open account in the same currency and product), then resend the transfer.
- developer_log_not_found: HTTP 404 [retryable=false, idempotencySafe=true; operations=1] cause=No resource matches the `id` this request referenced (`developer log not found`). action=List the collection this request referenced in the same tenant, product, and environment, then retry with an `id` that listing returns. remediation=Create or select the resource in the environment the call runs against; ids never carry across tenants, or across sandbox and live.
- earn_rate_operation_not_earnable: HTTP 400 [retryable=false, idempotencySafe=true; operations=1] cause=The operation refused the request on its `earn rate operation not earnable` contract condition. action=Read the error details, then the operation reference for this resource, before retrying. remediation=Correct the request against the generated SDK models and a fresh read of the resource; if the shape is already right, the product may be missing the capability this operation needs.
- email_verification_not_found: HTTP 404 [retryable=false, idempotencySafe=true; operations=1] cause=No resource matches the `id` this request referenced (`email verification not found`). action=List the collection this request referenced in the same tenant, product, and environment, then retry with an `id` that listing returns. remediation=Create or select the resource in the environment the call runs against; ids never carry across tenants, or across sandbox and live.
- empty_composition: HTTP 400 [retryable=false, idempotencySafe=true; operations=3] cause=The operation refused the request on its `empty composition` contract condition. action=Read the error details, then the operation reference for this resource, before retrying. remediation=Correct the request against the generated SDK models and a fresh read of the resource; if the shape is already right, the product may be missing the capability this operation needs.
- entity_lifecycle_status_forbidden: HTTP 409 [retryable=false, idempotencySafe=true; operations=4] cause=The Entity's current lifecycle state does not allow this transition (`entity lifecycle status forbidden`). action=Read the Entity with `entity.retrieve` and pick the lifecycle operation its current status allows. remediation=Apply a transition the Entity's current status permits. The reference itself is still valid, so no new Entity is needed.
- entity_not_found: HTTP 404 [retryable=false, idempotencySafe=true; operations=144] cause=No Entity matches the `entityId` this request referenced (`entity not found`). action=List Entities in the same tenant, product, and environment, then retry with the `entityId` that read returns. remediation=Create or select the Entity in the environment the call runs against; ids never carry across tenants, or across sandbox and live.
- entity_rejection_proof_invalid: HTTP 409 [retryable=false, idempotencySafe=true; operations=1] cause=The request contradicts the Entity the platform has already durably recorded (`entity rejection proof invalid`). action=Re-read the Entity with `entity.retrieve` and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the Entity as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- entity_status_forbidden: HTTP 403 [retryable=false, idempotencySafe=true; operations=134] cause=The Entity's current lifecycle state does not allow this transition (`entity status forbidden`). action=Read the Entity with `entity.retrieve` and pick the lifecycle operation its current status allows. remediation=Apply a transition the Entity's current status permits. The reference itself is still valid, so no new Entity is needed.
- entity_tenant_relationship_not_found: HTTP 404 [retryable=false, idempotencySafe=true; operations=8] cause=No Entity matches the `entityId` this request referenced (`entity tenant relationship not found`). action=List Entities in the same tenant, product, and environment, then retry with the `entityId` that read returns. remediation=Create or select the Entity in the environment the call runs against; ids never carry across tenants, or across sandbox and live.
- exception_cap_reached: HTTP 409 [retryable=false, idempotencySafe=true; operations=0] cause=The request contradicts the resource the platform has already durably recorded (`exception cap reached`). action=Re-read the resource this request referenced and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the resource as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- exposure_cap_exceeded: HTTP 409 [retryable=false, idempotencySafe=true; operations=1] cause=The request contradicts the resource the platform has already durably recorded (`exposure cap exceeded`). action=Re-read the resource this request referenced and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the resource as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- external_confirmation_conflict: HTTP 409 [retryable=false, idempotencySafe=true; operations=22] cause=The request contradicts the External Confirmation the platform has already durably recorded (`external confirmation conflict`). action=Re-read the External Confirmation with `external_confirmation.retrieve` and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the External Confirmation as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- external_confirmation_not_found: HTTP 404 [retryable=false, idempotencySafe=true; operations=24] cause=No External Confirmation matches the `externalConfirmationId` this request referenced (`external confirmation not found`). action=List External Confirmations in the same tenant, product, and environment, then retry with the `externalConfirmationId` that read returns. remediation=Create or select the External Confirmation in the environment the call runs against; ids never carry across tenants, or across sandbox and live.
- external_confirmation_resource_conflict: HTTP 409 [retryable=false, idempotencySafe=true; operations=22] cause=The request contradicts the External Confirmation the platform has already durably recorded (`external confirmation resource conflict`). action=Re-read the External Confirmation with `external_confirmation.retrieve` and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the External Confirmation as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- financial_address_account_status_forbidden: HTTP 400 [retryable=false, idempotencySafe=true; operations=1] cause=The Financial address's current lifecycle state does not allow this transition (`financial address account status forbidden`). action=Read the Financial address with `financial_address.retrieve` and pick the lifecycle operation its current status allows. remediation=Apply a transition the Financial address's current status permits. The reference itself is still valid, so no new Financial address is needed.
- financial_address_destination_mismatch: HTTP 409 [retryable=false, idempotencySafe=true; operations=3] cause=The request contradicts the Financial address the platform has already durably recorded (`financial address destination mismatch`). action=Re-read the Financial address with `financial_address.retrieve` and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the Financial address as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- financial_address_lifecycle_status_forbidden: HTTP 409 [retryable=false, idempotencySafe=true; operations=2] cause=The Financial address's current lifecycle state does not allow this transition (`financial address lifecycle status forbidden`). action=Read the Financial address with `financial_address.retrieve` and pick the lifecycle operation its current status allows. remediation=Apply a transition the Financial address's current status permits. The reference itself is still valid, so no new Financial address is needed.
- financial_address_not_found: HTTP 404 [retryable=false, idempotencySafe=true; operations=4] cause=No Financial address matches the `financialAddressId` this request referenced (`financial address not found`). action=List Financial addresses in the same tenant, product, and environment, then retry with the `financialAddressId` that read returns. remediation=Create or select the Financial address in the environment the call runs against; ids never carry across tenants, or across sandbox and live.
- financial_address_status_forbidden: HTTP 400 [retryable=false, idempotencySafe=true; operations=3] cause=The Financial address's current lifecycle state does not allow this transition (`financial address status forbidden`). action=Read the Financial address with `financial_address.retrieve` and pick the lifecycle operation its current status allows. remediation=Apply a transition the Financial address's current status permits. The reference itself is still valid, so no new Financial address is needed.
- funding_destination_role_forbidden: HTTP 400 [retryable=false, idempotencySafe=true; operations=1] cause=The submitted value is not one this resource accepts (`funding destination role forbidden`). action=Replace the rejected value with one this resource allows, as listed in the API reference or set by product policy. remediation=Rebuild the request from the generated SDK types for this resource, which carry the allowed values as unions rather than free strings.
- instrument_account_not_drained: HTTP 409 [retryable=false, idempotencySafe=true; operations=13] cause=The request contradicts the resource the platform has already durably recorded (`instrument account not drained`). action=Re-read the resource this request referenced and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the resource as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- instrument_aggregate_cap_exceeded: HTTP 409 [retryable=false, idempotencySafe=true; operations=8] cause=The request contradicts the resource the platform has already durably recorded (`instrument aggregate cap exceeded`). action=Re-read the resource this request referenced and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the resource as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- instrument_aggregate_currency_mismatch: HTTP 409 [retryable=false, idempotencySafe=true; operations=8] cause=The request contradicts the resource the platform has already durably recorded (`instrument aggregate currency mismatch`). action=Re-read the resource this request referenced and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the resource as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- instrument_decision_declined: HTTP 409 [retryable=false, idempotencySafe=true; operations=13] cause=The request contradicts the resource the platform has already durably recorded (`instrument decision declined`). action=Re-read the resource this request referenced and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the resource as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- instrument_decision_timeout: HTTP 409 [retryable=false, idempotencySafe=true; operations=13] cause=The request contradicts the resource the platform has already durably recorded (`instrument decision timeout`). action=Re-read the resource this request referenced and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the resource as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- instrument_distribute_unallocatable: HTTP 409 [retryable=false, idempotencySafe=true; operations=1] cause=The request contradicts the resource the platform has already durably recorded (`instrument distribute unallocatable`). action=Re-read the resource this request referenced and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the resource as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- instrument_instance_not_found: HTTP 404 [retryable=false, idempotencySafe=true; operations=215] cause=No Instrument instance matches the `instrumentInstanceId` this request referenced (`instrument instance not found`). action=List Instrument instances in the same tenant, product, and environment, then retry with the `instrumentInstanceId` that read returns. remediation=Create or select the Instrument instance in the environment the call runs against; ids never carry across tenants, or across sandbox and live.
- instrument_partition_mismatch: HTTP 409 [retryable=false, idempotencySafe=true; operations=1] cause=The request contradicts the resource the platform has already durably recorded (`instrument partition mismatch`). action=Re-read the resource this request referenced and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the resource as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- instrument_reference_already_claimed: HTTP 409 [retryable=false, idempotencySafe=true; operations=3] cause=The request contradicts the resource the platform has already durably recorded (`instrument reference already claimed`). action=Re-read the resource this request referenced and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the resource as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- instrument_reference_incongruent: HTTP 409 [retryable=false, idempotencySafe=true; operations=9] cause=The request contradicts the resource the platform has already durably recorded (`instrument reference incongruent`). action=Re-read the resource this request referenced and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the resource as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- instrument_reference_not_found: HTTP 404 [retryable=false, idempotencySafe=true; operations=45] cause=No resource matches the `id` this request referenced (`instrument reference not found`). action=List the collection this request referenced in the same tenant, product, and environment, then retry with an `id` that listing returns. remediation=Create or select the resource in the environment the call runs against; ids never carry across tenants, or across sandbox and live.
- instrument_reference_required: HTTP 409 [retryable=false, idempotencySafe=true; operations=38] cause=The request contradicts the resource the platform has already durably recorded (`instrument reference required`). action=Re-read the resource this request referenced and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the resource as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- instrument_reference_status_forbidden: HTTP 409 [retryable=false, idempotencySafe=true; operations=38] cause=The resource's current lifecycle state does not allow this transition (`instrument reference status forbidden`). action=Read the resource this request referenced and pick the lifecycle operation its current status allows. remediation=Apply a transition the resource's current status permits. The reference itself is still valid, so no new resource is needed.
- instrument_remainder_exceeded: HTTP 409 [retryable=false, idempotencySafe=true; operations=3] cause=The request contradicts the resource the platform has already durably recorded (`instrument remainder exceeded`). action=Re-read the resource this request referenced and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the resource as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- instrument_retired: HTTP 409 [retryable=false, idempotencySafe=true; operations=33] cause=The request contradicts the resource the platform has already durably recorded (`instrument retired`). action=Re-read the resource this request referenced and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the resource as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- instrument_subject_kind_forbidden: HTTP 409 [retryable=false, idempotencySafe=true; operations=12] cause=The request contradicts the resource the platform has already durably recorded (`instrument subject kind forbidden`). action=Re-read the resource this request referenced and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the resource as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- instrument_subject_not_found: HTTP 409 [retryable=false, idempotencySafe=true; operations=12] cause=No resource matches the `id` this request referenced (`instrument subject not found`). action=List the collection this request referenced in the same tenant, product, and environment, then retry with an `id` that listing returns. remediation=Create or select the resource in the environment the call runs against; ids never carry across tenants, or across sandbox and live.
- insufficient_balance: HTTP 409 [retryable=false, idempotencySafe=true; operations=132] cause=The source (debit) account's available balance is below the transfer amount, so the ledger refused the transfer. No money moved. The transfer was not created and its charge/transfer rows are recorded as failed. action=Fund the source (debit) account so its available balance in minor units covers the full amount, or lower the amount, then retry. Confirm the shortfall first with `account.balance.retrieve`. remediation=This is a definitive refusal, not a transient failure: replaying the exact request with the same Idempotency-Key safely returns this same refusal and never double-charges, so rotating to a fresh key is not the fix. Funding is. Top up the source account (or reduce the amount), then submit the transfer as a new request.
- insufficient_credit: HTTP 422 [retryable=false, idempotencySafe=true; operations=1] cause=The organization's prepaid credit account holds less than the amount this operation must pull upfront. Nothing was created and no money moved. action=Fund the organization credit bucket so its available balance covers the activation fee (or the open platform charge), then retry. Read the shortfall with `tenant.treasury.retrieve`. remediation=This is a definitive refusal, not a transient failure. Transfer funds to the credit bucket's funding IBAN (or seed it with sandbox funding in sandbox), confirm the balance via the treasury read, then submit the request again.
- invalid_credentials: HTTP 401 [retryable=false, idempotencySafe=true; operations=737] cause=Hyperscale could not accept the account or credential request. Signup, login, and bearer authentication use one 401 for every case they reject, so the response exposes no credential-specific reason or registered-email verdict. The single exception is a key that is real but homed in the other environment: because the presented secret already matched a stored key, the message names the mismatch instead of leaving a working credential looking unknown. action=For signup or login, re-check the submitted account details. For API calls, re-check the `Authorization: Bearer <key>` API key and whether it matches the target environment (sandbox vs live). remediation=For signup, verify the submitted details or use login or password reset for an existing account. For login, re-enter the credentials or reset the password. For API or MCP calls, use an active key for the target environment, set HYPERSCALE_API_KEY, and retry. When the message reports an environment mismatch, `details.keyEnvironment` names where the key does work: send that environment's key, or set `X-Hyperscale-Environment` to it.
- invalid_instrument_transition: HTTP 409 [retryable=false, idempotencySafe=true; operations=160] cause=The request contradicts the resource the platform has already durably recorded (`invalid instrument transition`). action=Re-read the resource this request referenced and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the resource as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- invite_already_pending: HTTP 409 [retryable=false, idempotencySafe=true; operations=1] cause=The request contradicts the resource the platform has already durably recorded (`invite already pending`). action=Re-read the resource this request referenced and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the resource as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- invite_already_used: HTTP 409 [retryable=false, idempotencySafe=true; operations=2] cause=The request contradicts the resource the platform has already durably recorded (`invite already used`). action=Re-read the resource this request referenced and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the resource as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- invite_expired: HTTP 409 [retryable=false, idempotencySafe=true; operations=1] cause=The request contradicts the resource the platform has already durably recorded (`invite expired`). action=Re-read the resource this request referenced and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the resource as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- invite_not_found: HTTP 404 [retryable=false, idempotencySafe=true; operations=2] cause=No resource matches the `id` this request referenced (`invite not found`). action=List the collection this request referenced in the same tenant, product, and environment, then retry with an `id` that listing returns. remediation=Create or select the resource in the environment the call runs against; ids never carry across tenants, or across sandbox and live.
- invoice_conflict: HTTP 409 [retryable=false, idempotencySafe=true; operations=1] cause=The request contradicts the Invoice the platform has already durably recorded (`invoice conflict`). action=Re-read the Invoice with `invoice.retrieve` and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the Invoice as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- invoice_line_not_found: HTTP 404 [retryable=false, idempotencySafe=true; operations=2] cause=No Invoice line matches the `invoiceLineId` this request referenced (`invoice line not found`). action=List Invoice lines in the same tenant, product, and environment, then retry with the `invoiceLineId` that read returns. remediation=Create or select the Invoice line in the environment the call runs against; ids never carry across tenants, or across sandbox and live.
- invoice_not_found: HTTP 404 [retryable=false, idempotencySafe=true; operations=7] cause=No Invoice matches the `invoiceId` this request referenced (`invoice not found`). action=List Invoices in the same tenant, product, and environment, then retry with the `invoiceId` that read returns. remediation=Create or select the Invoice in the environment the call runs against; ids never carry across tenants, or across sandbox and live.
- invoice_over_credit: HTTP 409 [retryable=false, idempotencySafe=true; operations=2] cause=The request contradicts the Invoice the platform has already durably recorded (`invoice over credit`). action=Re-read the Invoice with `invoice.retrieve` and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the Invoice as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- kyc_case_refused: HTTP 422 [retryable=false, idempotencySafe=true; operations=2] cause=The operation refused the request on its `kyc case refused` contract condition. action=Read the error details, then the operation reference for this resource, before retrying. remediation=Correct the request against the generated SDK models and a fresh read of the resource; if the shape is already right, the product may be missing the capability this operation needs.
- kyc_country_unsupported: HTTP 400 [retryable=false, idempotencySafe=true; operations=6] cause=The submitted value is not one this resource accepts (`kyc country unsupported`). action=Replace the rejected value with one this resource allows, as listed in the API reference or set by product policy. remediation=Rebuild the request from the generated SDK types for this resource, which carry the allowed values as unions rather than free strings.
- kyc_fields_insufficient: HTTP 409 [retryable=false, idempotencySafe=true; operations=2] cause=The profile does not yet satisfy even the lowest KYC tier's required fields, so there is nothing meaningful to verify. action=Submit the missing fields with `entity.kyc.submit`, then start verification again. `entity.kyc.retrieve` lists the missing fields per tier. remediation=Collect at least the basic tier's fields (see `kyc.requirements.retrieve`) before starting verification. Verification pins the stored fields as reviewed truth, so an effectively empty profile cannot enter review.
- kyc_fields_invalid: HTTP 400 [retryable=false, idempotencySafe=true; operations=1] cause=One or more submitted fields failed validation against the country's KYC requirement catalog. Nothing was stored. action=Fix the rejected values and resubmit. The error details name each offending field key and what its catalog rule expects (type, enumeration, pattern, or attestation). remediation=Render forms from `kyc.requirements.retrieve` so field keys, enumerations, and patterns always match the catalog; then submit values exactly as the catalog defines them. Partial profiles are fine, invalid values never are.
- kyc_profile_not_found: HTTP 404 [retryable=false, idempotencySafe=true; operations=4] cause=No resource matches the `id` this request referenced (`kyc profile not found`). action=List the collection this request referenced in the same tenant, product, and environment, then retry with an `id` that listing returns. remediation=Create or select the resource in the environment the call runs against; ids never carry across tenants, or across sandbox and live.
- kyc_subject_kind_forbidden: HTTP 409 [retryable=false, idempotencySafe=true; operations=3] cause=The request contradicts the resource the platform has already durably recorded (`kyc subject kind forbidden`). action=Re-read the resource this request referenced and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the resource as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- kyc_tier_insufficient: HTTP 403 [retryable=false, idempotencySafe=true; operations=31] cause=Opening an account of this role requires the owning customer's entity to have ATTAINED a KYC tier it has not reached: either required fields are missing or the profile is not verified. action=Complete and verify the entity's KYC profile to the tier this account role requires, then retry. The error details name the required tier and the entity's attained tier. remediation=Submit the missing fields (`entity.kyc.submit`), run verification (`entity.kyc.verification.start`), and once the outcome is verified at the required tier the account open succeeds unchanged. `entity.kyc.retrieve` shows exactly which fields stand between the entity and the required tier.
- kyc_verification_pending: HTTP 409 [retryable=true, idempotencySafe=true; operations=1] cause=The national identity provider still reports this verification as requested or waiting, so the profile remains pending and no terminal verification outcome was recorded. action=Wait for the provider's verification to advance, then replay `entity.kyc.verification.refresh` with the SAME Idempotency-Key. remediation=Keep the profile version and deterministic refresh key unchanged while polling. This refusal is retryable: Hyperscale releases the non-terminal reservation so the same key performs the next provider status check without creating a second logical operation.
- kyc_verification_status_forbidden: HTTP 409 [retryable=false, idempotencySafe=true; operations=3] cause=The KYC state machine refused the operation. Verification starts only from an unverified profile, refresh requires a pending profile, and an entity country bound to an existing KYC profile is immutable. action=Read the profile's current verification status with `entity.kyc.retrieve` and follow the allowed transition. Correct rejected identity fields with `entity.kyc.submit` before starting a new verification. remediation=Verification is single-flight: once pending, refresh the provider result instead of re-starting. Submit corrected identity fields to reset a rejected or verified profile. Create a replacement entity when its legal country changes after KYC submission.
- kyc_verification_unavailable: HTTP 503 [retryable=true, idempotencySafe=false; operations=2] cause=The platform could not durably complete the `kyc verification unavailable` step, so the resource may or may not have been written. action=Capture the request id and the receipt or operation id before retrying or escalating; do not re-send under a fresh key until you know whether the resource was written. remediation=Treat the resource's side effects as unknown unless a terminal receipt says otherwise; retry only operations documented as retryable, and replay them with the SAME idempotency key.
- ledger_transfer_rejected: HTTP 409 [retryable=false, idempotencySafe=true; operations=132] cause=The request contradicts the resource the platform has already durably recorded (`ledger transfer rejected`). action=Re-read the resource this request referenced and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the resource as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- ledger_unavailable: HTTP 503 [retryable=true, idempotencySafe=false; operations=148] cause=The platform could not durably complete the `ledger unavailable` step, so the resource may or may not have been written. action=Capture the request id and the receipt or operation id before retrying or escalating; do not re-send under a fresh key until you know whether the resource was written. remediation=Treat the resource's side effects as unknown unless a terminal receipt says otherwise; retry only operations documented as retryable, and replay them with the SAME idempotency key.
- live_readiness_requirement_unsatisfied: HTTP 409 [retryable=false, idempotencySafe=true; operations=1] cause=The request contradicts the resource the platform has already durably recorded (`live readiness requirement unsatisfied`). action=Re-read the resource this request referenced and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the resource as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- meter_rate_discount_not_active: HTTP 409 [retryable=false, idempotencySafe=true; operations=1] cause=The request contradicts the Meter rate discount the platform has already durably recorded (`meter rate discount not active`). action=Re-read the Meter rate discount with `meter_rate_discount.retrieve` and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the Meter rate discount as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- meter_rate_discount_not_found: HTTP 404 [retryable=false, idempotencySafe=true; operations=1] cause=No Meter rate discount matches the `meterRateDiscountId` this request referenced (`meter rate discount not found`). action=List Meter rate discounts in the same tenant, product, and environment, then retry with the `meterRateDiscountId` that read returns. remediation=Create or select the Meter rate discount in the environment the call runs against; ids never carry across tenants, or across sandbox and live.
- mfa_recovery_codes_exhausted: HTTP 409 [retryable=false, idempotencySafe=true; operations=2] cause=The active MFA factor has no unused recovery codes. action=Use an authenticator code, or ask a team security administrator to reset your factor. remediation=An MFA-verified session can regenerate ten codes. A team security administrator can reset another member, subject to owner protection. Retrying an exhausted set cannot restore it.
- mfa_reset_forbidden: HTTP 403 [retryable=false, idempotencySafe=true; operations=1] cause=The caller cannot reset this member MFA factor. action=Ask an authorized team security administrator to reset another eligible member. remediation=Self-reset through the team operation is forbidden. An admin cannot reset an owner, and tenant members cannot reset platform operator credentials.
- mfa_verification_required: HTTP 403 [retryable=false, idempotencySafe=true; operations=486] cause=This tenant surface requires a session that completed TOTP at login. Tenant operations demand it while the organization's require-MFA policy (tenant.security.configure) is on; user.mfa.totp.disable demands it unconditionally, because removing a factor is the act that factor exists to guard. action=Enroll and confirm a TOTP factor (user.mfa.totp.enrollment.begin, then user.mfa.totp.enrollment.confirm), then log in again and complete user.login.mfa.verify before retrying. remediation=MFA verification is a mint-time session fact, so enrolling a factor mid-session never upgrades the current session. After the factor is active, a fresh login returns an MFA challenge; completing it mints the verified session this surface demands. Identity self-operations (logout, TOTP enrollment) stay open to a password-only session, so a factorless member is never locked out of enrolling. Disabling a factor is the exception: sign in again and complete the challenge first.
- operation_confirmation_required: HTTP 428 [retryable=false, idempotencySafe=true; operations=9] cause=The operation cannot run against this Operation until the `operation confirmation required` prerequisite exists. action=Supply the field, capability, evidence, or configuration the error details name for this Operation, then call the operation again. remediation=Complete the prerequisite through the surface that owns it -- the operation reference for this Operation names it -- and the same call then succeeds unchanged.
- operation_environment_invalid: HTTP 400 [retryable=false, idempotencySafe=true; operations=21] cause=The submitted value is not one this Operation accepts (`operation environment invalid`). action=Replace the rejected value with one this Operation allows, as listed in the API reference or set by product policy. remediation=Rebuild the request from the generated SDK types for this Operation, which carry the allowed values as unions rather than free strings.
- operation_not_finalized: HTTP 409 [retryable=false, idempotencySafe=true; operations=432] cause=The request contradicts the Operation the platform has already durably recorded (`operation not finalized`). action=Re-read the Operation with `operation.retrieve` and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the Operation as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- operation_superseded_by_repair: HTTP 409 [retryable=false, idempotencySafe=true; operations=1] cause=This operation was wedged — its money was held but its receipt never finalized — and an operator repaired the hold directly. The operation was then closed failed so its idempotency key stops replaying an execution that can never complete. action=Read the repair named in the error details to see what happened to the money. remediation=Treat the original operation as failed and re-issue it under a NEW idempotency key if the business intent still stands; the repair already released or settled the funds it was holding.
- owner_unsupported: HTTP 400 [retryable=false, idempotencySafe=true; operations=1] cause=The submitted value is not one this resource accepts (`owner unsupported`). action=Replace the rejected value with one this resource allows, as listed in the API reference or set by product policy. remediation=Rebuild the request from the generated SDK types for this resource, which carry the allowed values as unions rather than free strings.
- passkey_authorization_invalid: HTTP 401 [retryable=false, idempotencySafe=true; operations=1] cause=The passkey enrollment authorization token is unknown, expired, revoked, or already used. action=Request a new operator passkey bootstrap or recovery authorization, then begin enrollment with its one-time token. remediation=Issue a fresh authorization for the intended operator and purpose. Do not retry the spent token or expose it in logs, receipts, or command output.
- passkey_challenge_invalid: HTTP 409 [retryable=false, idempotencySafe=true; operations=2] cause=The passkey challenge is unknown, expired, consumed, or does not match this ceremony. action=Restart the passkey ceremony and submit the authenticator response against the new options before they expire. remediation=Discard the old browser response, request fresh WebAuthn options, and complete that exact ceremony once.
- passkey_credential_not_found: HTTP 404 [retryable=false, idempotencySafe=true; operations=2] cause=The selected platform operator passkey does not exist or is no longer active. action=Refresh the active passkey list and select a credential that is still active. remediation=List the operator's current credentials, then restart revocation with one of the returned credential IDs.
- passkey_enrollment_state_conflict: HTTP 409 [retryable=false, idempotencySafe=true; operations=2] cause=The requested passkey enrollment purpose does not match the operator's current credential state. action=Choose bootstrap only before the operator has a passkey, or recovery only after at least one active passkey exists. remediation=List or verify the operator's active credentials, then request bootstrap for a credential-free operator or recovery for an enrolled operator.
- passkey_final_credential_required: HTTP 409 [retryable=false, idempotencySafe=true; operations=2] cause=Revoking the selected passkey would leave the platform operator with no active credential. action=Enroll and verify another passkey before revoking this credential. remediation=Register a second synced or hardware-backed credential, confirm it appears as active, then retry the revocation.
- passkey_verification_failed: HTTP 401 [retryable=false, idempotencySafe=true; operations=2] cause=The authenticator response failed WebAuthn challenge, origin, RP ID, signature, credential, or user-verification checks. action=Restart the passkey ceremony and approve it with the credential and user verification requested by the browser. remediation=Use fresh options from the same estate and complete the browser prompt without changing origin. If the credential is unavailable, use an authorized recovery enrollment.
- passkey_verification_required: HTTP 403 [retryable=false, idempotencySafe=true; operations=254] cause=The platform session was not minted from a verified passkey credential. A tenant TOTP verification does not satisfy this gate. action=Sign in with an active platform operator passkey before calling an admin operation. remediation=End the current session and complete the discoverable passkey login flow. If no credential is available, obtain a one-time recovery authorization and enroll a new passkey.
- password_reset_expired: HTTP 409 [retryable=false, idempotencySafe=true; operations=1] cause=The request contradicts the resource the platform has already durably recorded (`password reset expired`). action=Re-read the resource this request referenced and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the resource as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- password_reset_not_found: HTTP 404 [retryable=false, idempotencySafe=true; operations=1] cause=No resource matches the `id` this request referenced (`password reset not found`). action=List the collection this request referenced in the same tenant, product, and environment, then retry with an `id` that listing returns. remediation=Create or select the resource in the environment the call runs against; ids never carry across tenants, or across sandbox and live.
- password_reset_used: HTTP 409 [retryable=false, idempotencySafe=true; operations=1] cause=The request contradicts the resource the platform has already durably recorded (`password reset used`). action=Re-read the resource this request referenced and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the resource as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- payout_beneficiary_reserved: HTTP 409 [retryable=false, idempotencySafe=true; operations=1] cause=The named beneficiary is the platform-provisioned revenue beneficiary that only Hyperscale's billing sweep may pay. action=Send the payout to a beneficiary you created; this one is reserved for Hyperscale's own invoice collection. remediation=Invoices are collected automatically by the billing sweep -- no tenant payout is ever needed toward this beneficiary. Create and verify your own beneficiary for outbound payments.
- payout_not_found: HTTP 404 [retryable=false, idempotencySafe=true; operations=5] cause=No Payout matches the `payoutId` this request referenced (`payout not found`). action=List Payouts in the same tenant, product, and environment, then retry with the `payoutId` that read returns. remediation=Create or select the Payout in the environment the call runs against; ids never carry across tenants, or across sandbox and live.
- payout_status_forbidden: HTTP 409 [retryable=false, idempotencySafe=true; operations=4] cause=The Payout's current lifecycle state does not allow this transition (`payout status forbidden`). action=Read the Payout with `payout.retrieve` and pick the lifecycle operation its current status allows. remediation=Apply a transition the Payout's current status permits. The reference itself is still valid, so no new Payout is needed.
- payout_transfer_mismatch: HTTP 409 [retryable=false, idempotencySafe=true; operations=4] cause=The request contradicts the Payout the platform has already durably recorded (`payout transfer mismatch`). action=Re-read the Payout with `payout.retrieve` and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the Payout as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- platform_rate_kind_mismatch: HTTP 422 [retryable=false, idempotencySafe=true; operations=1] cause=The request contradicts the resource the platform has already durably recorded (`platform rate kind mismatch`). action=Re-read the resource this request referenced and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the resource as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- platform_rate_override_not_active: HTTP 409 [retryable=false, idempotencySafe=true; operations=1] cause=The request contradicts the Platform rate override the platform has already durably recorded (`platform rate override not active`). action=Re-read the Platform rate override with `platform_rate_override.retrieve` and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the Platform rate override as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- platform_rate_override_not_found: HTTP 404 [retryable=false, idempotencySafe=true; operations=1] cause=No Platform rate override matches the `platformRateOverrideId` this request referenced (`platform rate override not found`). action=List Platform rate overrides in the same tenant, product, and environment, then retry with the `platformRateOverrideId` that read returns. remediation=Create or select the Platform rate override in the environment the call runs against; ids never carry across tenants, or across sandbox and live.
- platform_rate_unknown_rate: HTTP 422 [retryable=false, idempotencySafe=true; operations=1] cause=The operation refused the request on its `platform rate unknown rate` contract condition. action=Read the error details, then the operation reference for this resource, before retrying. remediation=Correct the request against the generated SDK models and a fresh read of the resource; if the shape is already right, the product may be missing the capability this operation needs.
- platform_tenant_already_designated: HTTP 409 [retryable=false, idempotencySafe=true; operations=1] cause=The request contradicts the resource the platform has already durably recorded (`platform tenant already designated`). action=Re-read the resource this request referenced and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the resource as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- port_actor_not_allowed: HTTP 409 [retryable=false, idempotencySafe=true; operations=7] cause=The request contradicts the resource the platform has already durably recorded (`port actor not allowed`). action=Re-read the resource this request referenced and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the resource as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- product_build_not_found: HTTP 404 [retryable=false, idempotencySafe=true; operations=7] cause=No Product matches the `productId` this request referenced (`product build not found`). action=List Products in the same tenant, product, and environment, then retry with the `productId` that read returns. remediation=Create or select the Product in the environment the call runs against; ids never carry across tenants, or across sandbox and live.
- product_build_stale: HTTP 409 [retryable=false, idempotencySafe=true; operations=3] cause=The request contradicts the Product the platform has already durably recorded (`product build stale`). action=Re-read the Product with `product.retrieve` and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the Product as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- product_capability_already_enabled: HTTP 409 [retryable=false, idempotencySafe=true; operations=2] cause=The request contradicts the Product capability the platform has already durably recorded (`product capability already enabled`). action=Re-read the Product capability with `product_capability.retrieve` and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the Product capability as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- product_capability_not_found: HTTP 404 [retryable=false, idempotencySafe=true; operations=4] cause=No Product capability matches the `productCapabilityId` this request referenced (`product capability not found`). action=List Product capabilities in the same tenant, product, and environment, then retry with the `productCapabilityId` that read returns. remediation=Create or select the Product capability in the environment the call runs against; ids never carry across tenants, or across sandbox and live.
- product_capability_status_forbidden: HTTP 409 [retryable=false, idempotencySafe=true; operations=4] cause=The Product capability's current lifecycle state does not allow this transition (`product capability status forbidden`). action=Read the Product capability with `product_capability.retrieve` and pick the lifecycle operation its current status allows. remediation=Apply a transition the Product capability's current status permits. The reference itself is still valid, so no new Product capability is needed.
- product_close_open_activity: HTTP 409 [retryable=false, idempotencySafe=true; operations=1] cause=The request contradicts the Product the platform has already durably recorded (`product close open activity`). action=Re-read the Product with `product.retrieve` and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the Product as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- product_context_forbidden: HTTP 400 [retryable=false, idempotencySafe=true; operations=18] cause=The submitted value is not one this Product accepts (`product context forbidden`). action=Replace the rejected value with one this Product allows, as listed in the API reference or set by product policy. remediation=Rebuild the request from the generated SDK types for this Product, which carry the allowed values as unions rather than free strings.
- product_context_mismatch: HTTP 400 [retryable=false, idempotencySafe=true; operations=18] cause=The request contradicts the Product the platform has already durably recorded (`product context mismatch`). action=Re-read the Product with `product.retrieve` and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the Product as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- product_context_owner_mismatch: HTTP 400 [retryable=false, idempotencySafe=true; operations=18] cause=The request contradicts the Product the platform has already durably recorded (`product context owner mismatch`). action=Re-read the Product with `product.retrieve` and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the Product as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- product_context_required: HTTP 400 [retryable=false, idempotencySafe=true; operations=18] cause=The operation cannot run against this Product until the `product context required` prerequisite exists. action=Supply the field, capability, evidence, or configuration the error details name for this Product, then call the operation again. remediation=Complete the prerequisite through the surface that owns it -- the operation reference for this Product names it -- and the same call then succeeds unchanged.
- product_dial_not_found: HTTP 404 [retryable=false, idempotencySafe=true; operations=1] cause=No Product matches the `productId` this request referenced (`product dial not found`). action=List Products in the same tenant, product, and environment, then retry with the `productId` that read returns. remediation=Create or select the Product in the environment the call runs against; ids never carry across tenants, or across sandbox and live.
- product_dial_value_out_of_bounds: HTTP 409 [retryable=false, idempotencySafe=true; operations=1] cause=The request contradicts the Product the platform has already durably recorded (`product dial value out of bounds`). action=Re-read the Product with `product.retrieve` and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the Product as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- product_disable_open_activity: HTTP 409 [retryable=false, idempotencySafe=true; operations=1] cause=The request contradicts the Product the platform has already durably recorded (`product disable open activity`). action=Re-read the Product with `product.retrieve` and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the Product as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- product_instrument_not_drained: HTTP 409 [retryable=false, idempotencySafe=true; operations=1] cause=The request contradicts the Product the platform has already durably recorded (`product instrument not drained`). action=Re-read the Product with `product.retrieve` and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the Product as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- product_lifecycle_status_forbidden: HTTP 409 [retryable=false, idempotencySafe=true; operations=4] cause=The Product's current lifecycle state does not allow this transition (`product lifecycle status forbidden`). action=Read the Product with `product.retrieve` and pick the lifecycle operation its current status allows. remediation=Apply a transition the Product's current status permits. The reference itself is still valid, so no new Product is needed.
- product_not_found: HTTP 404 [retryable=false, idempotencySafe=true; operations=453] cause=No Product matches the `productId` this request referenced (`product not found`). action=List Products in the same tenant, product, and environment, then retry with the `productId` that read returns. remediation=Create or select the Product in the environment the call runs against; ids never carry across tenants, or across sandbox and live.
- product_not_promoted: HTTP 409 [retryable=false, idempotencySafe=true; operations=1] cause=The request contradicts the Product the platform has already durably recorded (`product not promoted`). action=Re-read the Product with `product.retrieve` and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the Product as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- product_scope_required: HTTP 400 [retryable=false, idempotencySafe=true; operations=18] cause=The operation cannot run against this Product until the `product scope required` prerequisite exists. action=Supply the field, capability, evidence, or configuration the error details name for this Product, then call the operation again. remediation=Complete the prerequisite through the surface that owns it -- the operation reference for this Product names it -- and the same call then succeeds unchanged.
- product_scope_unsupported: HTTP 400 [retryable=false, idempotencySafe=true; operations=18] cause=The submitted value is not one this Product accepts (`product scope unsupported`). action=Replace the rejected value with one this Product allows, as listed in the API reference or set by product policy. remediation=Rebuild the request from the generated SDK types for this Product, which carry the allowed values as unions rather than free strings.
- product_status_forbidden: HTTP 403 [retryable=false, idempotencySafe=true; operations=19] cause=The Product's current lifecycle state does not allow this transition (`product status forbidden`). action=Read the Product with `product.retrieve` and pick the lifecycle operation its current status allows. remediation=Apply a transition the Product's current status permits. The reference itself is still valid, so no new Product is needed.
- provider_cost_evidence_mismatch: HTTP 409 [retryable=false, idempotencySafe=true; operations=1] cause=The request contradicts the resource the platform has already durably recorded (`provider cost evidence mismatch`). action=Re-read the resource this request referenced and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the resource as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- provider_cost_reference_conflict: HTTP 409 [retryable=false, idempotencySafe=true; operations=1] cause=The request contradicts the resource the platform has already durably recorded (`provider cost reference conflict`). action=Re-read the resource this request referenced and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the resource as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- provider_egress_failed: HTTP 502 [retryable=true, idempotencySafe=false; operations=2] cause=The platform could not durably complete the `provider egress failed` step, so the resource may or may not have been written. action=Capture the request id and the receipt or operation id before retrying or escalating; do not re-send under a fresh key until you know whether the resource was written. remediation=Treat the resource's side effects as unknown unless a terminal receipt says otherwise; retry only operations documented as retryable, and replay them with the SAME idempotency key.
- provider_egress_rejected: HTTP 422 [retryable=false, idempotencySafe=true; operations=2] cause=The operation refused the request on its `provider egress rejected` contract condition. action=Read the error details, then the operation reference for this resource, before retrying. remediation=Correct the request against the generated SDK models and a fresh read of the resource; if the shape is already right, the product may be missing the capability this operation needs.
- provider_outcome_unsupported: HTTP 400 [retryable=false, idempotencySafe=true; operations=22] cause=The submitted value is not one this resource accepts (`provider outcome unsupported`). action=Replace the rejected value with one this resource allows, as listed in the API reference or set by product policy. remediation=Rebuild the request from the generated SDK types for this resource, which carry the allowed values as unions rather than free strings.
- provider_webhook_event_conflict: HTTP 409 [retryable=false, idempotencySafe=true; operations=1] cause=The request contradicts the Provider webhook event the platform has already durably recorded (`provider webhook event conflict`). action=Re-read the Provider webhook event with `provider_webhook_event.retrieve` and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the Provider webhook event as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- reporting_artifact_refused: HTTP 422 [retryable=false, idempotencySafe=true; operations=4] cause=The operation refused the request on its `reporting artifact refused` contract condition. action=Read the error details, then the operation reference for this Reporting artifact, before retrying. remediation=Correct the request against the generated SDK models and a fresh read of the Reporting artifact; if the shape is already right, the product may be missing the capability this operation needs.
- reporting_artifact_unchanged: HTTP 409 [retryable=false, idempotencySafe=true; operations=4] cause=The request contradicts the Reporting artifact the platform has already durably recorded (`reporting artifact unchanged`). action=Re-read the Reporting artifact with `reporting_artifact.retrieve` and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the Reporting artifact as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- reporting_balance_row_mismatch: HTTP 409 [retryable=false, idempotencySafe=true; operations=1] cause=The request contradicts the resource the platform has already durably recorded (`reporting balance row mismatch`). action=Re-read the resource this request referenced and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the resource as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- sandbox_environment_required: HTTP 400 [retryable=false, idempotencySafe=true; operations=15] cause=The operation cannot run against this resource until the `sandbox environment required` prerequisite exists. action=Supply the field, capability, evidence, or configuration the error details name for this resource, then call the operation again. remediation=Complete the prerequisite through the surface that owns it -- the operation reference for this resource names it -- and the same call then succeeds unchanged.
- session_expired: HTTP 401 [retryable=false, idempotencySafe=true; operations=494] cause=The operation refused the request on its `session expired` contract condition. action=Read the error details, then the operation reference for this resource, before retrying. remediation=Correct the request against the generated SDK models and a fresh read of the resource; if the shape is already right, the product may be missing the capability this operation needs.
- session_not_found: HTTP 404 [retryable=false, idempotencySafe=true; operations=3] cause=No resource matches the `id` this request referenced (`session not found`). action=List the collection this request referenced in the same tenant, product, and environment, then retry with an `id` that listing returns. remediation=Create or select the resource in the environment the call runs against; ids never carry across tenants, or across sandbox and live.
- session_required: HTTP 401 [retryable=false, idempotencySafe=true; operations=496] cause=The operation cannot run against this resource until the `session required` prerequisite exists. action=Supply the field, capability, evidence, or configuration the error details name for this resource, then call the operation again. remediation=Complete the prerequisite through the surface that owns it -- the operation reference for this resource names it -- and the same call then succeeds unchanged.
- session_revoke_forbidden: HTTP 403 [retryable=false, idempotencySafe=true; operations=3] cause=The submitted value is not one this resource accepts (`session revoke forbidden`). action=Replace the rejected value with one this resource allows, as listed in the API reference or set by product policy. remediation=Rebuild the request from the generated SDK types for this resource, which carry the allowed values as unions rather than free strings.
- session_revoked: HTTP 401 [retryable=false, idempotencySafe=true; operations=494] cause=The operation refused the request on its `session revoked` contract condition. action=Read the error details, then the operation reference for this resource, before retrying. remediation=Correct the request against the generated SDK models and a fresh read of the resource; if the shape is already right, the product may be missing the capability this operation needs.
- settled_balance_insufficient: HTTP 409 [retryable=false, idempotencySafe=true; operations=1] cause=The requested withdrawal amount is above the point-in-time settled ledger balance of the organization settlement account, so no payout was created. action=Lower the amount or wait for more earnings to settle, then submit a new logical withdrawal with a new Idempotency-Key after reading tenant.treasury.retrieve. remediation=Use the requestedAmount and settledBalance details to correct the amount. This 409 receipt is terminal and same-key replay returns the same refusal, so the corrected withdrawal needs a new Idempotency-Key. This pre-create check does not reserve funds; payout submission remains the final ledger enforcement boundary.
- settlement_iban_missing: HTTP 422 [retryable=false, idempotencySafe=true; operations=1] cause=Withdrawals pay out only to the organization's configured settlement IBAN and none is on file. action=Register the organization's payout bank account with `tenant.settlement_iban.set`, then retry the withdrawal. remediation=Set the settlement IBAN and beneficiary name once; every withdrawal and auto-settle sweep then uses it as the fixed destination, so no per-request bank details are ever accepted.
- source_account_status_forbidden: HTTP 400 [retryable=false, idempotencySafe=true; operations=101] cause=The source (debit) account is not open. It is frozen or closed, so Hyperscale will not debit it. action=Use a source account whose status is `open`, or unfreeze the intended account, before retrying. remediation=Read the account status, unfreeze it (or select an open account in the same currency and product), then resend the transfer.
- source_operation_not_found: HTTP 404 [retryable=false, idempotencySafe=true; operations=102] cause=No resource matches the `id` this request referenced (`source operation not found`). action=List the collection this request referenced in the same tenant, product, and environment, then retry with an `id` that listing returns. remediation=Create or select the resource in the environment the call runs against; ids never carry across tenants, or across sandbox and live.
- statement_evidence_incomplete: HTTP 409 [retryable=false, idempotencySafe=true; operations=2] cause=One of this month's ledger movements has no complete receipt behind it: no finalized receipt claims that transfer, more than one does, or the receipt that claims it is missing the linkage a statement line is built from. A statement is only ever derived from receipts, so the month is refused whole rather than issued with a line no receipt can back. The error details name the ledger transfer and the receipt the check stopped on. action=Read the month on the treasury window to see how far the gap runs, and ask whoever operates this deployment to repair the receipt the error details name. No statement was issued and no figures were produced. remediation=Nothing in the request causes this and no retry clears it: the same month refuses until the receipt linkage is repaired, which only an operator of this deployment can do. Balances are untouched -- the account's balance read still answers, and every other month still issues -- so the treasury window is the fastest way to see whether one month or a run of them is affected.
- statement_evidence_mismatch: HTTP 409 [retryable=false, idempotencySafe=true; operations=2] cause=This month's records disagree with each other. Either a ledger movement and the receipt claiming it differ on amount, currency, account side, phase, or the transfer resource behind them, or the lines those receipts describe do not add up to the closing balance the ledger reports for the month. Both records are immutable, so the read refuses rather than issue a statement from whichever one it picked. action=Compare the ledger transfer and the receipt the error details name; a statement can only be issued once they agree, which is repair work for whoever operates this deployment. No statement was issued and no figures were produced. remediation=This is a fact about stored records, so retrying, re-authenticating, or asking for a narrower period all return the same refusal. The account and its balances are unaffected and neighbouring months still issue. Repair means correcting the disagreement at its source -- the receipt for that movement -- after which the month issues normally with no change to this call.
- statement_line_limit_exceeded: HTTP 413 [retryable=false, idempotencySafe=true; operations=2] cause=This account recorded more than 50,000 movements in the requested month -- more activity than a single monthly statement can carry. The account and its balances are fine; the month is too large to render as one document. The error details carry the exact limit. action=Read the month on the accounts that make this one up, rather than on the pooled account itself. No statement was issued and no figures were produced. remediation=A statement is a whole UTC month by definition, so there is no second page to ask for and no date range that narrows it. An account this busy is almost always a pooled account: read the per-customer or per-product accounts beneath it, whose months each fall within the limit, and their opening and closing balances add back to the same totals.
- str_case_already_open: HTTP 409 [retryable=false, idempotencySafe=true; operations=1] cause=A live, unsuperseded case already exists for this company and alert reference. An alert holds one case; opening another would fork the version chain that IS the audit trail. action=Advance the live case for this alert instead of opening a second one. remediation=Call str_case.advance with the same subjectTenantId and alertReference to move the existing case. If the alert genuinely concerns a separate matter, raise it under its own alert reference.
- str_case_not_found: HTTP 404 [retryable=false, idempotencySafe=true; operations=1] cause=No live case exists for this company and alert reference. Either the case was never opened, or the alert reference does not match the one it was opened under. action=Check the subjectTenantId and alertReference; a case is addressed by the alert it belongs to, never by a version row id. remediation=Open the case first with str_case.open. Note that the strCaseId a previous call returned is a version row id and changes on every advance, so it is not an address.
- str_case_transition_refused: HTTP 409 [retryable=false, idempotencySafe=true; operations=1] cause=The requested status is not reachable from the case's current one. Cases only move forward -- review, then drafted, then filed or dismissed, with an inquiry-and-response leg after filing -- and terminal statuses accept nothing further. action=Read the case's current status and choose a target the forward-only transition map allows from it. remediation=Advance one lawful step at a time. A dismissal must carry its retained rationale, and a case cannot reach filed without its filing evidence.
- support_booking_not_found: HTTP 404 [retryable=false, idempotencySafe=true; operations=3] cause=No Support booking matches the `supportBookingId` this request referenced (`support booking not found`). action=List Support bookings in the same tenant, product, and environment, then retry with the `supportBookingId` that read returns. remediation=Create or select the Support booking in the environment the call runs against; ids never carry across tenants, or across sandbox and live.
- support_booking_slot_taken: HTTP 409 [retryable=false, idempotencySafe=true; operations=2] cause=The request contradicts the Support booking the platform has already durably recorded (`support booking slot taken`). action=Re-read the Support booking with `support_booking.retrieve` and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the Support booking as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- support_booking_status_forbidden: HTTP 409 [retryable=false, idempotencySafe=true; operations=3] cause=The Support booking's current lifecycle state does not allow this transition (`support booking status forbidden`). action=Read the Support booking with `support_booking.retrieve` and pick the lifecycle operation its current status allows. remediation=Apply a transition the Support booking's current status permits. The reference itself is still valid, so no new Support booking is needed.
- support_slot_invalid: HTTP 400 [retryable=false, idempotencySafe=true; operations=1] cause=The submitted value is not one this resource accepts (`support slot invalid`). action=Replace the rejected value with one this resource allows, as listed in the API reference or set by product policy. remediation=Rebuild the request from the generated SDK types for this resource, which carry the allowed values as unions rather than free strings.
- support_ticket_closed: HTTP 409 [retryable=false, idempotencySafe=true; operations=2] cause=The request contradicts the Support ticket the platform has already durably recorded (`support ticket closed`). action=Re-read the Support ticket with `support_ticket.retrieve` and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the Support ticket as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- support_ticket_not_found: HTTP 404 [retryable=false, idempotencySafe=true; operations=4] cause=No Support ticket matches the `supportTicketId` this request referenced (`support ticket not found`). action=List Support tickets in the same tenant, product, and environment, then retry with the `supportTicketId` that read returns. remediation=Create or select the Support ticket in the environment the call runs against; ids never carry across tenants, or across sandbox and live.
- team_last_owner_protected: HTTP 409 [retryable=false, idempotencySafe=true; operations=2] cause=The request contradicts the resource the platform has already durably recorded (`team last owner protected`). action=Re-read the resource this request referenced and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the resource as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- team_member_not_found: HTTP 404 [retryable=false, idempotencySafe=true; operations=2] cause=No resource matches the `id` this request referenced (`team member not found`). action=List the collection this request referenced in the same tenant, product, and environment, then retry with an `id` that listing returns. remediation=Create or select the resource in the environment the call runs against; ids never carry across tenants, or across sandbox and live.
- team_role_in_use: HTTP 409 [retryable=false, idempotencySafe=true; operations=1] cause=The request contradicts the resource the platform has already durably recorded (`team role in use`). action=Re-read the resource this request referenced and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the resource as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- team_role_name_taken: HTTP 409 [retryable=false, idempotencySafe=true; operations=2] cause=The request contradicts the resource the platform has already durably recorded (`team role name taken`). action=Re-read the resource this request referenced and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the resource as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- team_role_not_found: HTTP 404 [retryable=false, idempotencySafe=true; operations=5] cause=No resource matches the `id` this request referenced (`team role not found`). action=List the collection this request referenced in the same tenant, product, and environment, then retry with an `id` that listing returns. remediation=Create or select the resource in the environment the call runs against; ids never carry across tenants, or across sandbox and live.
- tenant_bank_confirmation_required: HTTP 409 [retryable=false, idempotencySafe=true; operations=2] cause=The request contradicts the Company the platform has already durably recorded (`tenant bank confirmation required`). action=Re-read the Company with `tenant.retrieve` and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the Company as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- tenant_bank_onboarding_status_forbidden: HTTP 409 [retryable=false, idempotencySafe=true; operations=4] cause=The Company's current lifecycle state does not allow this transition (`tenant bank onboarding status forbidden`). action=Read the Company with `tenant.retrieve` and pick the lifecycle operation its current status allows. remediation=Apply a transition the Company's current status permits. The reference itself is still valid, so no new Company is needed.
- tenant_close_open_activity: HTTP 409 [retryable=false, idempotencySafe=true; operations=1] cause=The request contradicts the Company the platform has already durably recorded (`tenant close open activity`). action=Re-read the Company with `tenant.retrieve` and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the Company as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- tenant_code_exhausted: HTTP 503 [retryable=true, idempotencySafe=false; operations=3] cause=The per-environment tenant code space (49,999 five-digit codes) is fully allocated, so no new organization can be provisioned. action=Stop retrying; provisioning cannot succeed until tenant code capacity changes. Contact the platform operator. remediation=This is a platform capacity ceiling, not a transient fault: retrying with any idempotency key returns the same refusal. Only the operator can reclaim closed-tenant codes or extend the code space.
- tenant_kyb_approval_required: HTTP 409 [retryable=false, idempotencySafe=true; operations=1] cause=The request contradicts the Company the platform has already durably recorded (`tenant kyb approval required`). action=Re-read the Company with `tenant.retrieve` and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the Company as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- tenant_owner_mismatch: HTTP 403 [retryable=false, idempotencySafe=true; operations=1] cause=The request contradicts the Company the platform has already durably recorded (`tenant owner mismatch`). action=Re-read the Company with `tenant.retrieve` and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the Company as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- tenant_status_forbidden: HTTP 409 [retryable=false, idempotencySafe=true; operations=11] cause=The Company's current lifecycle state does not allow this transition (`tenant status forbidden`). action=Read the Company with `tenant.retrieve` and pick the lifecycle operation its current status allows. remediation=Apply a transition the Company's current status permits. The reference itself is still valid, so no new Company is needed.
- terms_acceptance_required: HTTP 403 [retryable=false, idempotencySafe=true; operations=1] cause=The operation cannot run against this resource until the `terms acceptance required` prerequisite exists. action=Supply the field, capability, evidence, or configuration the error details name for this resource, then call the operation again. remediation=Complete the prerequisite through the surface that owns it -- the operation reference for this resource names it -- and the same call then succeeds unchanged.
- transfer_adjustment_amount_invalid: HTTP 400 [retryable=false, idempotencySafe=true; operations=1] cause=The submitted value is not one this resource accepts (`transfer adjustment amount invalid`). action=Replace the rejected value with one this resource allows, as listed in the API reference or set by product policy. remediation=Rebuild the request from the generated SDK types for this resource, which carry the allowed values as unions rather than free strings.
- transfer_destination_role_forbidden: HTTP 400 [retryable=false, idempotencySafe=true; operations=101] cause=The submitted value is not one this resource accepts (`transfer destination role forbidden`). action=Replace the rejected value with one this resource allows, as listed in the API reference or set by product policy. remediation=Rebuild the request from the generated SDK types for this resource, which carry the allowed values as unions rather than free strings.
- transfer_expiry_invalid: HTTP 400 [retryable=false, idempotencySafe=true; operations=8] cause=The submitted value is not one this resource accepts (`transfer expiry invalid`). action=Replace the rejected value with one this resource allows, as listed in the API reference or set by product policy. remediation=Rebuild the request from the generated SDK types for this resource, which carry the allowed values as unions rather than free strings.
- transfer_expiry_past: HTTP 400 [retryable=false, idempotencySafe=true; operations=8] cause=The operation refused the request on its `transfer expiry past` contract condition. action=Read the error details, then the operation reference for this resource, before retrying. remediation=Correct the request against the generated SDK models and a fresh read of the resource; if the shape is already right, the product may be missing the capability this operation needs.
- transfer_expiry_too_large: HTTP 400 [retryable=false, idempotencySafe=true; operations=7] cause=The operation refused the request on its `transfer expiry too large` contract condition. action=Read the error details, then the operation reference for this resource, before retrying. remediation=Correct the request against the generated SDK models and a fresh read of the resource; if the shape is already right, the product may be missing the capability this operation needs.
- transfer_hold_not_expired: HTTP 409 [retryable=false, idempotencySafe=true; operations=1] cause=The request contradicts the resource the platform has already durably recorded (`transfer hold not expired`). action=Re-read the resource this request referenced and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the resource as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- transfer_hold_not_found: HTTP 404 [retryable=false, idempotencySafe=true; operations=3] cause=No resource matches the `id` this request referenced (`transfer hold not found`). action=List the collection this request referenced in the same tenant, product, and environment, then retry with an `id` that listing returns. remediation=Create or select the resource in the environment the call runs against; ids never carry across tenants, or across sandbox and live.
- transfer_hold_status_forbidden: HTTP 409 [retryable=false, idempotencySafe=true; operations=3] cause=The resource's current lifecycle state does not allow this transition (`transfer hold status forbidden`). action=Read the resource this request referenced and pick the lifecycle operation its current status allows. remediation=Apply a transition the resource's current status permits. The reference itself is still valid, so no new resource is needed.
- transfer_hold_transfer_mismatch: HTTP 409 [retryable=false, idempotencySafe=true; operations=3] cause=The request contradicts the resource the platform has already durably recorded (`transfer hold transfer mismatch`). action=Re-read the resource this request referenced and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the resource as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- transfer_lineage_conflict: HTTP 409 [retryable=false, idempotencySafe=true; operations=105] cause=The request contradicts the resource the platform has already durably recorded (`transfer lineage conflict`). action=Re-read the resource this request referenced and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the resource as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- transfer_not_expired: HTTP 409 [retryable=false, idempotencySafe=true; operations=1] cause=The request contradicts the resource the platform has already durably recorded (`transfer not expired`). action=Re-read the resource this request referenced and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the resource as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- transfer_not_found: HTTP 404 [retryable=false, idempotencySafe=true; operations=102] cause=No resource matches the `id` this request referenced (`transfer not found`). action=List the collection this request referenced in the same tenant, product, and environment, then retry with an `id` that listing returns. remediation=Create or select the resource in the environment the call runs against; ids never carry across tenants, or across sandbox and live.
- transfer_not_wedged: HTTP 409 [retryable=false, idempotencySafe=true; operations=1] cause=The transfer is not provably wedged at execution time: it carries no ledger stamp, it is no longer reserved, or its owning operation is terminal or has not yet sat past the wedge deadline. action=Re-run wedged_money.scan and repair only a transfer it still lists with a action available. remediation=Let the reservation-expiry sweep or the owning lifecycle finish the transfer. Repair exists only for holds that no healthy path can still finalize, and it re-proves that under lock before moving anything.
- transfer_post_amount_invalid: HTTP 400 [retryable=false, idempotencySafe=true; operations=6] cause=The submitted value is not one this resource accepts (`transfer post amount invalid`). action=Replace the rejected value with one this resource allows, as listed in the API reference or set by product policy. remediation=Rebuild the request from the generated SDK types for this resource, which carry the allowed values as unions rather than free strings.
- transfer_return_exists: HTTP 409 [retryable=false, idempotencySafe=true; operations=1] cause=The request contradicts the resource the platform has already durably recorded (`transfer return exists`). action=Re-read the resource this request referenced and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the resource as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- transfer_return_not_found: HTTP 404 [retryable=false, idempotencySafe=true; operations=3] cause=No resource matches the `id` this request referenced (`transfer return not found`). action=List the collection this request referenced in the same tenant, product, and environment, then retry with an `id` that listing returns. remediation=Create or select the resource in the environment the call runs against; ids never carry across tenants, or across sandbox and live.
- transfer_return_status_forbidden: HTTP 409 [retryable=false, idempotencySafe=true; operations=3] cause=The resource's current lifecycle state does not allow this transition (`transfer return status forbidden`). action=Read the resource this request referenced and pick the lifecycle operation its current status allows. remediation=Apply a transition the resource's current status permits. The reference itself is still valid, so no new resource is needed.
- transfer_return_target_is_return: HTTP 409 [retryable=false, idempotencySafe=true; operations=1] cause=The request contradicts the resource the platform has already durably recorded (`transfer return target is return`). action=Re-read the resource this request referenced and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the resource as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- transfer_return_window_expired: HTTP 409 [retryable=false, idempotencySafe=true; operations=1] cause=The request contradicts the resource the platform has already durably recorded (`transfer return window expired`). action=Re-read the resource this request referenced and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the resource as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- transfer_reversal_window_expired: HTTP 409 [retryable=false, idempotencySafe=true; operations=1] cause=The request contradicts the resource the platform has already durably recorded (`transfer reversal window expired`). action=Re-read the resource this request referenced and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the resource as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- transfer_role_pair_forbidden: HTTP 400 [retryable=false, idempotencySafe=true; operations=101] cause=The submitted value is not one this resource accepts (`transfer role pair forbidden`). action=Replace the rejected value with one this resource allows, as listed in the API reference or set by product policy. remediation=Rebuild the request from the generated SDK types for this resource, which carry the allowed values as unions rather than free strings.
- transfer_source_role_forbidden: HTTP 400 [retryable=false, idempotencySafe=true; operations=101] cause=The submitted value is not one this resource accepts (`transfer source role forbidden`). action=Replace the rejected value with one this resource allows, as listed in the API reference or set by product policy. remediation=Rebuild the request from the generated SDK types for this resource, which carry the allowed values as unions rather than free strings.
- transfer_status_forbidden: HTTP 409 [retryable=false, idempotencySafe=true; operations=101] cause=The transfer is not in the state this operation requires (for example, posting needs a reserved transfer; returning or reversing needs a posted one). The current and required states are described in the error message. action=Read the transfer's current status and call the operation that is valid for that status. remediation=Follow the transfer lifecycle (reserve → post, then return/reverse) and issue the operation matching the transfer's current state instead of the rejected one.
- trust_evidence_case_mismatch: HTTP 409 [retryable=false, idempotencySafe=true; operations=13] cause=The request contradicts the Trust Review evidence the platform has already durably recorded (`trust evidence case mismatch`). action=Re-read the Trust Review evidence with `trust_evidence.retrieve` and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the Trust Review evidence as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- trust_evidence_checksum_algorithm_unsupported: HTTP 400 [retryable=false, idempotencySafe=true; operations=13] cause=The submitted value is not one this Trust Review evidence accepts (`trust evidence checksum algorithm unsupported`). action=Replace the rejected value with one this Trust Review evidence allows, as listed in the API reference or set by product policy. remediation=Rebuild the request from the generated SDK types for this Trust Review evidence, which carry the allowed values as unions rather than free strings.
- trust_evidence_checksum_invalid: HTTP 400 [retryable=false, idempotencySafe=true; operations=13] cause=The submitted value is not one this Trust Review evidence accepts (`trust evidence checksum invalid`). action=Replace the rejected value with one this Trust Review evidence allows, as listed in the API reference or set by product policy. remediation=Rebuild the request from the generated SDK types for this Trust Review evidence, which carry the allowed values as unions rather than free strings.
- trust_evidence_checksum_required: HTTP 400 [retryable=false, idempotencySafe=true; operations=13] cause=The operation cannot run against this Trust Review evidence until the `trust evidence checksum required` prerequisite exists. action=Supply the field, capability, evidence, or configuration the error details name for this Trust Review evidence, then call the operation again. remediation=Complete the prerequisite through the surface that owns it -- the operation reference for this Trust Review evidence names it -- and the same call then succeeds unchanged.
- trust_evidence_document_type_required: HTTP 400 [retryable=false, idempotencySafe=true; operations=13] cause=The operation cannot run against this Trust Review evidence until the `trust evidence document type required` prerequisite exists. action=Supply the field, capability, evidence, or configuration the error details name for this Trust Review evidence, then call the operation again. remediation=Complete the prerequisite through the surface that owns it -- the operation reference for this Trust Review evidence names it -- and the same call then succeeds unchanged.
- trust_evidence_document_type_unsupported: HTTP 400 [retryable=false, idempotencySafe=true; operations=13] cause=The submitted value is not one this Trust Review evidence accepts (`trust evidence document type unsupported`). action=Replace the rejected value with one this Trust Review evidence allows, as listed in the API reference or set by product policy. remediation=Rebuild the request from the generated SDK types for this Trust Review evidence, which carry the allowed values as unions rather than free strings.
- trust_evidence_duplicate_checksum: HTTP 409 [retryable=false, idempotencySafe=true; operations=13] cause=The request contradicts the Trust Review evidence the platform has already durably recorded (`trust evidence duplicate checksum`). action=Re-read the Trust Review evidence with `trust_evidence.retrieve` and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the Trust Review evidence as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- trust_evidence_kind_unsupported: HTTP 400 [retryable=false, idempotencySafe=true; operations=13] cause=The submitted value is not one this Trust Review evidence accepts (`trust evidence kind unsupported`). action=Replace the rejected value with one this Trust Review evidence allows, as listed in the API reference or set by product policy. remediation=Rebuild the request from the generated SDK types for this Trust Review evidence, which carry the allowed values as unions rather than free strings.
- trust_evidence_not_found: HTTP 404 [retryable=false, idempotencySafe=true; operations=13] cause=No Trust Review evidence matches the `trustEvidenceId` this request referenced (`trust evidence not found`). action=List Trust Review evidence in the same tenant, product, and environment, then retry with the `trustEvidenceId` that read returns. remediation=Create or select the Trust Review evidence in the environment the call runs against; ids never carry across tenants, or across sandbox and live.
- trust_requirement_evidence_stale: HTTP 409 [retryable=false, idempotencySafe=true; operations=13] cause=The request contradicts the Trust Review requirement the platform has already durably recorded (`trust requirement evidence stale`). action=Re-read the Trust Review requirement with `trust_requirement.retrieve` and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the Trust Review requirement as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- trust_requirement_not_found: HTTP 404 [retryable=false, idempotencySafe=true; operations=13] cause=No Trust Review requirement matches the `trustRequirementId` this request referenced (`trust requirement not found`). action=List Trust Review requirements in the same tenant, product, and environment, then retry with the `trustRequirementId` that read returns. remediation=Create or select the Trust Review requirement in the environment the call runs against; ids never carry across tenants, or across sandbox and live.
- trust_requirement_proof_source_unsupported: HTTP 400 [retryable=false, idempotencySafe=true; operations=13] cause=The submitted value is not one this Trust Review requirement accepts (`trust requirement proof source unsupported`). action=Replace the rejected value with one this Trust Review requirement allows, as listed in the API reference or set by product policy. remediation=Rebuild the request from the generated SDK types for this Trust Review requirement, which carry the allowed values as unions rather than free strings.
- trust_requirement_provider_proof_required: HTTP 409 [retryable=false, idempotencySafe=true; operations=13] cause=The request contradicts the Trust Review requirement the platform has already durably recorded (`trust requirement provider proof required`). action=Re-read the Trust Review requirement with `trust_requirement.retrieve` and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the Trust Review requirement as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- trust_requirement_status_forbidden: HTTP 409 [retryable=false, idempotencySafe=true; operations=13] cause=The Trust Review requirement's current lifecycle state does not allow this transition (`trust requirement status forbidden`). action=Read the Trust Review requirement with `trust_requirement.retrieve` and pick the lifecycle operation its current status allows. remediation=Apply a transition the Trust Review requirement's current status permits. The reference itself is still valid, so no new Trust Review requirement is needed.
- trust_requirement_status_unsupported: HTTP 400 [retryable=false, idempotencySafe=true; operations=13] cause=The submitted value is not one this Trust Review requirement accepts (`trust requirement status unsupported`). action=Replace the rejected value with one this Trust Review requirement allows, as listed in the API reference or set by product policy. remediation=Rebuild the request from the generated SDK types for this Trust Review requirement, which carry the allowed values as unions rather than free strings.
- trust_review_business_identity_mismatch: HTTP 409 [retryable=false, idempotencySafe=true; operations=13] cause=The request contradicts the Trust review the platform has already durably recorded (`trust review business identity mismatch`). action=Re-read the Trust review with `trust_review.retrieve` and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the Trust review as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- trust_review_business_profile_not_found: HTTP 404 [retryable=false, idempotencySafe=true; operations=13] cause=No Trust review matches the `trustReviewId` this request referenced (`trust review business profile not found`). action=List Trust reviews in the same tenant, product, and environment, then retry with the `trustReviewId` that read returns. remediation=Create or select the Trust review in the environment the call runs against; ids never carry across tenants, or across sandbox and live.
- trust_review_decision_reason_code_required: HTTP 400 [retryable=false, idempotencySafe=true; operations=13] cause=The operation cannot run against this Trust review until the `trust review decision reason code required` prerequisite exists. action=Supply the field, capability, evidence, or configuration the error details name for this Trust review, then call the operation again. remediation=Complete the prerequisite through the surface that owns it -- the operation reference for this Trust review names it -- and the same call then succeeds unchanged.
- trust_review_decision_reason_code_unsupported: HTTP 400 [retryable=false, idempotencySafe=true; operations=13] cause=The submitted value is not one this Trust review accepts (`trust review decision reason code unsupported`). action=Replace the rejected value with one this Trust review allows, as listed in the API reference or set by product policy. remediation=Rebuild the request from the generated SDK types for this Trust review, which carry the allowed values as unions rather than free strings.
- trust_review_not_approved: HTTP 409 [retryable=false, idempotencySafe=true; operations=15] cause=The request contradicts the Trust review the platform has already durably recorded (`trust review not approved`). action=Re-read the Trust review with `trust_review.retrieve` and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the Trust review as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- trust_review_not_found: HTTP 404 [retryable=false, idempotencySafe=true; operations=15] cause=No Trust review matches the `trustReviewId` this request referenced (`trust review not found`). action=List Trust reviews in the same tenant, product, and environment, then retry with the `trustReviewId` that read returns. remediation=Create or select the Trust review in the environment the call runs against; ids never carry across tenants, or across sandbox and live.
- trust_review_ownership_exceeds_total: HTTP 409 [retryable=false, idempotencySafe=true; operations=13] cause=The request contradicts the Trust review the platform has already durably recorded (`trust review ownership exceeds total`). action=Re-read the Trust review with `trust_review.retrieve` and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the Trust review as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- trust_review_product_mismatch: HTTP 409 [retryable=false, idempotencySafe=true; operations=14] cause=The request contradicts the Trust review the platform has already durably recorded (`trust review product mismatch`). action=Re-read the Trust review with `trust_review.retrieve` and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the Trust review as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- trust_review_registration_status_unsupported: HTTP 400 [retryable=false, idempotencySafe=true; operations=13] cause=The submitted value is not one this Trust review accepts (`trust review registration status unsupported`). action=Replace the rejected value with one this Trust review allows, as listed in the API reference or set by product policy. remediation=Rebuild the request from the generated SDK types for this Trust review, which carry the allowed values as unions rather than free strings.
- trust_review_required: HTTP 400 [retryable=false, idempotencySafe=true; operations=1] cause=The operation cannot run against this Trust review until the `trust review required` prerequisite exists. action=Supply the field, capability, evidence, or configuration the error details name for this Trust review, then call the operation again. remediation=Complete the prerequisite through the surface that owns it -- the operation reference for this Trust review names it -- and the same call then succeeds unchanged.
- trust_review_risk_level_unsupported: HTTP 400 [retryable=false, idempotencySafe=true; operations=13] cause=The submitted value is not one this Trust review accepts (`trust review risk level unsupported`). action=Replace the rejected value with one this Trust review allows, as listed in the API reference or set by product policy. remediation=Rebuild the request from the generated SDK types for this Trust review, which carry the allowed values as unions rather than free strings.
- trust_review_risk_score_invalid: HTTP 400 [retryable=false, idempotencySafe=true; operations=13] cause=The submitted value is not one this Trust review accepts (`trust review risk score invalid`). action=Replace the rejected value with one this Trust review allows, as listed in the API reference or set by product policy. remediation=Rebuild the request from the generated SDK types for this Trust review, which carry the allowed values as unions rather than free strings.
- trust_review_status_forbidden: HTTP 409 [retryable=false, idempotencySafe=true; operations=14] cause=The Trust review's current lifecycle state does not allow this transition (`trust review status forbidden`). action=Read the Trust review with `trust_review.retrieve` and pick the lifecycle operation its current status allows. remediation=Apply a transition the Trust review's current status permits. The reference itself is still valid, so no new Trust review is needed.
- trust_review_subject_control_type_unsupported: HTTP 400 [retryable=false, idempotencySafe=true; operations=13] cause=The submitted value is not one this Trust Review subject accepts (`trust review subject control type unsupported`). action=Replace the rejected value with one this Trust Review subject allows, as listed in the API reference or set by product policy. remediation=Rebuild the request from the generated SDK types for this Trust Review subject, which carry the allowed values as unions rather than free strings.
- trust_review_subject_entity_required: HTTP 400 [retryable=false, idempotencySafe=true; operations=13] cause=The operation cannot run against this Trust Review subject until the `trust review subject entity required` prerequisite exists. action=Supply the field, capability, evidence, or configuration the error details name for this Trust Review subject, then call the operation again. remediation=Complete the prerequisite through the surface that owns it -- the operation reference for this Trust Review subject names it -- and the same call then succeeds unchanged.
- trust_review_subject_not_found: HTTP 404 [retryable=false, idempotencySafe=true; operations=13] cause=No Trust Review subject matches the `trustReviewSubjectId` this request referenced (`trust review subject not found`). action=List Trust Review subjects in the same tenant, product, and environment, then retry with the `trustReviewSubjectId` that read returns. remediation=Create or select the Trust Review subject in the environment the call runs against; ids never carry across tenants, or across sandbox and live.
- trust_review_subject_ownership_percentage_invalid: HTTP 400 [retryable=false, idempotencySafe=true; operations=13] cause=The submitted value is not one this Trust Review subject accepts (`trust review subject ownership percentage invalid`). action=Replace the rejected value with one this Trust Review subject allows, as listed in the API reference or set by product policy. remediation=Rebuild the request from the generated SDK types for this Trust Review subject, which carry the allowed values as unions rather than free strings.
- trust_review_subject_role_unsupported: HTTP 400 [retryable=false, idempotencySafe=true; operations=13] cause=The submitted value is not one this Trust Review subject accepts (`trust review subject role unsupported`). action=Replace the rejected value with one this Trust Review subject allows, as listed in the API reference or set by product policy. remediation=Rebuild the request from the generated SDK types for this Trust Review subject, which carry the allowed values as unions rather than free strings.
- trust_review_subject_status_unsupported: HTTP 400 [retryable=false, idempotencySafe=true; operations=13] cause=The submitted value is not one this Trust Review subject accepts (`trust review subject status unsupported`). action=Replace the rejected value with one this Trust Review subject allows, as listed in the API reference or set by product policy. remediation=Rebuild the request from the generated SDK types for this Trust Review subject, which carry the allowed values as unions rather than free strings.
- trust_review_target_tenant_mismatch: HTTP 403 [retryable=false, idempotencySafe=true; operations=13] cause=The request contradicts the Trust review the platform has already durably recorded (`trust review target tenant mismatch`). action=Re-read the Trust review with `trust_review.retrieve` and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the Trust review as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- trust_review_target_unsupported: HTTP 400 [retryable=false, idempotencySafe=true; operations=13] cause=The submitted value is not one this Trust review accepts (`trust review target unsupported`). action=Replace the rejected value with one this Trust review allows, as listed in the API reference or set by product policy. remediation=Rebuild the request from the generated SDK types for this Trust review, which carry the allowed values as unions rather than free strings.
- usage_source_conflict: HTTP 409 [retryable=false, idempotencySafe=true; operations=206] cause=The request contradicts the resource the platform has already durably recorded (`usage source conflict`). action=Re-read the resource this request referenced and compare the submitted ids, currency, product, tenant, and expected state against what comes back. remediation=Rebuild the request from the resource as it now stands, then retry under a NEW idempotency key -- reuse the original key only when you are deliberately replaying the original mutation.
- user_status_forbidden: HTTP 403 [retryable=false, idempotencySafe=true; operations=10] cause=The resource's current lifecycle state does not allow this transition (`user status forbidden`). action=Read the resource this request referenced and pick the lifecycle operation its current status allows. remediation=Apply a transition the resource's current status permits. The reference itself is still valid, so no new resource is needed.
- webhook_endpoint_lifecycle_status_forbidden: HTTP 409 [retryable=false, idempotencySafe=true; operations=4] cause=The Webhook endpoint's current lifecycle state does not allow this transition (`webhook endpoint lifecycle status forbidden`). action=Read the Webhook endpoint with `webhook_endpoint.retrieve` and pick the lifecycle operation its current status allows. remediation=Apply a transition the Webhook endpoint's current status permits. The reference itself is still valid, so no new Webhook endpoint is needed.
- wedge_evidence_mismatch: HTTP 409 [retryable=false, idempotencySafe=true; operations=1] cause=The wedge facts asserted in the request no longer match the server's recomputation — the transfer moved between the scan that produced the evidence and this repair. action=Re-run wedged_money.scan and submit the evidence that scan returns. remediation=Repair requires the caller to assert what it believes it is repairing so a stale operator view can never finalize money the ledger has since changed. A fresh scan resolves it.
- wedge_hold_not_live: HTTP 409 [retryable=false, idempotencySafe=true; operations=1] cause=The ledger holds no live pending transfer at this hold's id — it was posted or voided out of band in the window between the scan that produced this evidence and this repair. Repair never looks the hold up beforehand; the finalization itself is the check, so a hold that ended in that window is discovered here and nowhere earlier. action=Re-scan for the current worklist and repair from that. Do not resubmit this evidence; the ledger has already answered it. remediation=No money moved and no repair was recorded; the transfer row is exactly as the scan found it, and the refusal burns nothing — the same Idempotency-Key still re-executes. What the re-scan shows tells you which case you are in. If the finalization was something Hyperscale records, the transfer is no longer reserved and the entry is simply gone. If the entry is still listed as a live hold, the row and the ledger have genuinely diverged: the worklist is computed from Hyperscale's own ledger stamps, not from the ledger, so repair will keep refusing. Closing that gap is a reconciliation against the ledger, not a repair.
- wedge_owner_lifecycle_owned: HTTP 409 [retryable=false, idempotencySafe=true; operations=1] cause=The hold belongs to a payout or collection. Voiding it underneath that resource would leave its row claiming a state the ledger no longer supports — a new divergence created by the cure. action=Drive the payout or collection named in the error details through its own lifecycle operation instead. remediation=Repair finalizes bare holds only. A hold with an owner is the owner's to finalize, and the scan already reports these with no actions available.
