OpenWOP openwop.dev

The canonical OpenWOP error envelope is { code, message, details? } returned with the appropriate HTTP status. This page lists every code in the v2 error registry with its HTTP status, a one-line meaning, and the spec section that carries the normative definition.

Generated from spec/v2/errors.json at build time, so it cannot drift from the corpus. Envelope shape: core/errors.md.

Envelope shape

{
  "code": "validation_error",
  "message": "Request body fails schema",
  "details": {
    "field": "workflowId",
    "reason": "missing"
  }
}
  • code — machine-readable identifier. Stable within a major; new codes land additively.
  • message — human-readable explanation. MUST NOT include the offending input verbatim when that input could echo a prompt-injection payload or a credential.
  • details — optional structured context. Documented per code below.

The HTTP status code carries the primary classification; the code field disambiguates within the status class.

Codes by HTTP status

HTTP 400 — 26 codes

CodeRetriableSinceDefined in
connection_provider_unresolvedno1.0spec/v1/connection-packs.md
connector_action_unresolvedno1.0spec/v1/rest-endpoints.md §Error response shape
credential_scope_unsupportedno1.0spec/v1/rest-endpoints.md §Error response shape
delegation_chain_cyclicno2.0RFC 0170 §B.1
delegation_chain_too_longno2.0RFC 0170 §B.1
idempotency_key_invalidno2.0RFC 0170 §D.3
interop_version_unsupportedno1.0spec/v1/rest-endpoints.md §Error response shape
oauth_provider_unsupportedno1.0spec/v1/rest-endpoints.md §Error response shape
oauth_scope_unsupportedno1.0spec/v1/rest-endpoints.md §Error response shape
pack_dependency_cycleno1.0spec/v1/node-packs.md
pack_engine_unsupportedno2.0RFC 0177 §A.1
pack_integrity_failureno1.0spec/v1/node-packs.md
pack_kind_invalidno1.0spec/v1/node-packs.md
pack_lockfile_incompleteno1.0spec/v1/node-packs.md
pack_peer_dependency_missingno1.0spec/v1/node-packs.md
pack_peer_dependency_undefinedno1.0spec/v1/node-packs.md
pack_signature_invalidno1.0spec/v1/node-packs.md
pack_validation_failedno1.0spec/v1/node-packs.md
protocol_version_mismatchno2.0RFC 0172 §A.3
schedule_horizon_exceededno1.0spec/v1/rest-endpoints.md §Error response shape
sub_chain_cycleno2.0RFC 0133 §Unresolved 3 (resolved: maxSubChainDepth 8, fail closed); carried into v2 by RFC 0177 §E
sub_chain_depth_exceededno2.0RFC 0133 §Unresolved 3 — the depth ceiling breach (distinct from a cycle)
unsupported_stream_modeno1.0api/openapi.yaml UnsupportedStreamMode (RFC 0171 §B.1 folds the one-member enum)
until_in_pastno2.0RFC 0169 §A.3 (validation_error details.reason in v1; a code in v2)
validation_errorno1.0spec/v1/rest-endpoints.md §Error response shape
webhook_url_rejectedno2.0spec/v2/core/webhooks.md §Egress

HTTP 401 — 10 codes

CodeRetriableSinceDefined in
audience_mismatchno2.0RFC 0170 §B.1
connector_auth_expiredno1.0spec/v1/rest-endpoints.md §Error response shape
credential_revokedno2.0RFC 0170 §B.3
delegation_expiredno2.0RFC 0170 §B.1
identity_unresolvableno2.0RFC 0170 §B.1
identity_unverifiedno2.0RFC 0170 §B.1 / RFC 0154
interrupt_token_invalidno2.0RFC 0170 §E.1
key_revokedno1.0spec/v1/rest-endpoints.md §Error response shape
sender_constraint_missingno2.0RFC 0170 §B.4
unauthenticatedno1.0spec/v1/rest-endpoints.md §Error response shape

HTTP 403 — 11 codes

CodeRetriableSinceDefined in
credential_forbiddenno1.0spec/v1/rest-endpoints.md §Error response shape
delegation_scope_amplifiedno2.0RFC 0170 §B.1
forbiddenno1.0spec/v1/auth.md (v1 MUST)
force_engine_version_forbiddenno1.0spec/v1/run-options.md / version-negotiation.md (OpenWOP-Force-Engine-Version outside test keys)
id_tenant_mismatchno2.0RFC 0170 §D.1 (an id whose tenant segment is not the caller's)
mock_provider_forbiddenno1.0spec/v1/run-options.md (mockProvider outside test keys)
pack_namespace_unauthorizedno1.0spec/v1/node-packs.md
run_forbiddenno1.0spec/v1/rest-endpoints.md §Error response shape
sandbox_capability_deniedno1.0spec/v1/rest-endpoints.md §Error response shape
sandbox_escape_attemptno1.0spec/v1/rest-endpoints.md §Error response shape
workspace_membership_requiredno1.0spec/v1/rest-endpoints.md §Error response shape

HTTP 404 — 6 codes

CodeRetriableSinceDefined in
credential_not_foundno1.0spec/v1/rest-endpoints.md §Error response shape
interrupt_not_foundno1.0spec/v1/interrupt.md
not_foundno1.0spec/v1/rest-endpoints.md §Error response shape
pack_version_not_foundno1.0spec/v1/node-packs.md
replay_source_missingno1.0spec/v1/rest-endpoints.md §Error response shape
signature_not_availableno1.0api/openapi.yaml

HTTP 406 — 1 code

CodeRetriableSinceDefined in
protocol_version_unsupportedno2.0RFC 0172 §A.3

HTTP 409 — 14 codes

CodeRetriableSinceDefined in
connection_provider_conflictno1.0spec/v1/connection-packs.md; RFC 0177 §D.1 fail-closed
envelope_correlation_conflictno1.0spec/v1/ai-envelope.md E2 (correlationId type conflict)
idempotency_in_flightno1.0spec/v1/idempotency.md §Concurrent duplicates (v1 MUST; RFC 0171 §B.2 keeps one mismatch code, this is the in-flight state)
idempotency_key_mismatchno1.0spec/v1/idempotency.md (the only spelling; RFC 0171 §B.2)
interrupt_already_resolvedno1.0spec/v1/interrupt.md (409/410 overlap: RFC 0171 row C4.6 — one code per state)
pack_dependency_conflictno1.0spec/v1/node-packs.md
pack_integrity_mismatchno1.0spec/v1/node-packs.md
replay_diverged_at_refusalno1.0spec/v1/rest-endpoints.md §Error response shape
replay_memory_snapshot_unavailableno1.0spec/v1/rest-endpoints.md §Error response shape
run_already_activeno1.0spec/v1/rest-endpoints.md §Error response shape
run_state_conflictno2.0spec/v2/core/runs.md §Pause and resume
run_terminalno1.0spec/v1/rest-endpoints.md (a mutation on a terminal run)
version_conflictno1.0api/openapi.yaml
workspace_conflictno1.0spec/v1/rest-endpoints.md §Error response shape

HTTP 410 — 2 codes

CodeRetriableSinceDefined in
interrupt_cancelledno1.0spec/v1/interrupt.md (the run was cancelled while suspended)
interrupt_expiredno1.0spec/v1/interrupt.md

HTTP 413 — 2 codes

CodeRetriableSinceDefined in
payload_too_largeno2.0spec/v2/core/errors.md §The envelope — a request body a host refuses on size before parsing it (RFC 9110 §15.5.14); registered 2026-09-05 because both production hosts had to invent it
workspace_too_largeno1.0spec/v1/rest-endpoints.md §Error response shape

HTTP 415 — 1 code

CodeRetriableSinceDefined in
unsupported_media_typeno2.0spec/v2/core/errors.md §The envelope — a request body whose Content-Type the host does not accept (RFC 9110 §15.5.16); registered 2026-09-05 because both production hosts had to invent it

HTTP 422 — 16 codes

CodeRetriableSinceDefined in
capability_not_providedno1.0spec/v1/rest-endpoints.md §Error response shape
capability_requiredno1.0spec/v1/rest-endpoints.md §Error response shape
credential_requiredno1.0spec/v1/rest-endpoints.md §Error response shape
envelope_invalidno1.0spec/v1/rest-endpoints.md §Error response shape
envelope_refusalno1.0spec/v1/rest-endpoints.md §Error response shape
envelope_truncation_unrecoverableno1.0spec/v1/rest-endpoints.md §Error response shape
fork_point_invalidno2.0spec/v2/core/runs.md §Fork
loop_limit_exceededno1.0spec/v1/rest-endpoints.md §Error response shape
mcp_mrtr_rounds_exceededno2.0RFC 0175 §E.1
pack_runtime_requirement_unmetno1.0spec/v1/node-packs.md
recursion_limit_exceededno1.0spec/v1/rest-endpoints.md §Error response shape
residency_unavailableyes1.0spec/v1/rest-endpoints.md §Error response shape
run_timeoutno1.0spec/v1/rest-endpoints.md §Error response shape
sandbox_memory_exceededno1.0spec/v1/rest-endpoints.md §Error response shape
sandbox_timeoutno1.0spec/v1/rest-endpoints.md §Error response shape
token_budget_exceededno1.0spec/v1/rest-endpoints.md §Error response shape

HTTP 426 — 1 code

CodeRetriableSinceDefined in
client_version_unsupportedno2.0RFC 0172 row C5.8

HTTP 429 — 1 code

CodeRetriableSinceDefined in
rate_limitedyes1.0spec/v1/rest-endpoints.md §Error response shape

HTTP 500 — 3 codes

CodeRetriableSinceDefined in
event_type_unmappedno2.0RFC 0176 §A.3 (a run whose log the host cannot translate is not readable)
internal_erroryes1.0spec/v1/rest-endpoints.md §Error response shape
pack_load_failureno1.0spec/v1/node-packs.md

HTTP 501 — 1 code

CodeRetriableSinceDefined in
credential_unavailableno1.0spec/v1/rest-endpoints.md §Error response shape

HTTP 503 — 2 codes

CodeRetriableSinceDefined in
pack_registry_unreachableyes1.0spec/v1/node-packs.md
runner_unavailableyes1.0spec/v1/rest-endpoints.md §Error response shape

_97 codes, generated from spec/v2/errors.json at build time._

Stability guarantees

Per Versioning & compatibility:

  • New codes land additively within a major. Clients that match an unknown code against a known set MUST treat it as the parent HTTP status family.
  • Existing codes never change their HTTP status mapping or their semantic meaning within a major. A code's details shape may gain new optional fields.
  • Removed codes never happen within a major. A code that turns out to be redundant is documented as superseded; the old code keeps working.

What this page is not

This is not the normative source. The error envelope shape is defined in core/errors.md; each code's preconditions, the events it pairs with (envelope.retry.exhausted, cap.breached, etc.), and any SR-1 redaction rules are documented in the spec section linked above. When this page disagrees with the spec, the spec wins.

This page exists as a reference card for client implementers — one place to grep when wiring error handling.