OptionalcontextOptionalrecoveryOverride the recovery classification. Defaults to
STANDARD_ERROR_CODES[code].recovery for known codes, 'terminal'
otherwise. Dropped from the wire shape for codes whose entry in
ADCP_ERROR_FIELD_ALLOWLIST excludes it; normalized back to the
standard table value for allowlisted standard-code envelopes.
OptionalfieldName of the request field the error applies to (validation /
constraint errors). Dropped from the wire shape for codes whose
ADCP_ERROR_FIELD_ALLOWLIST entry excludes it (e.g. IDEMPOTENCY_CONFLICT
— a conflict response MUST NOT echo prior payload state).
OptionalsuggestionHuman-readable remediation hint. Dropped from the wire shape for
codes whose ADCP_ERROR_FIELD_ALLOWLIST entry excludes it (e.g.
IDEMPOTENCY_CONFLICT).
Optionalretry_Seconds to wait before retrying a transient error. Only meaningful
on retryable codes (RATE_LIMITED, SERVICE_UNAVAILABLE); dropped
on terminal codes whose allowlist excludes it (IDEMPOTENCY_CONFLICT
— a computed retry_after on conflict would leak cached-entry age).
OptionaldetailsCode-specific diagnostic payload. Dropped from the wire shape for
codes whose ADCP_ERROR_FIELD_ALLOWLIST entry excludes it
(IDEMPOTENCY_CONFLICT — a conflict response MUST NOT echo the
prior request payload or cached response body).
OptionalissuesSchema validation issues surfaced at the top level of adcp_error
so operators see JSON Pointers on the first render. Primary use is
VALIDATION_ERROR; framework validation hooks populate this
automatically and also mirror the same array to details.issues
for buyers that already index into details per AdCP spec
convention.
Optionalbuyer_Buyer-actionable classification. Populate when the top-level code
is coarse or producer-internal and a buyer-safe {code, message} pair
(drawn from the standard error vocabulary) would give the buyer's
agent something to act on. Per AdCP 3.2 core/error.json, message
MUST be safe to show to the buyer — no vendor identifiers, ad-server
type names, internal object names, internal IDs, or stack traces. The
envelope allowlist for IDEMPOTENCY_CONFLICT / IDEMPOTENCY_IN_FLIGHT
drops this key — those codes are wire-shape-restricted and never carry
a buyer-actionable classification.
Opaque request context to echo beside
adcp_error. Only a non-null, non-array object is echoable, matching the framework envelope behavior.