Skip to content

AdCP 3.3: mutation_outcome on errors and unsupported-targeting-dimension details #1642

Closed

Description

@bokelley

Spec

  1. core/error.json can carry mutation_outcome (not_applied, unknown, applied), so a buyer knows whether to re-plan after a failed state-changing request. See L3 error-handling §Mutation outcome.
  2. UNSUPPORTED_FEATURE for an unsupported or removed targeting dimension SHOULD carry the new error-details/unsupported-targeting-dimension.json details (unsupported_dimension, optional supported_dimensions, deprecated, replacement_dimension, product_id, package_index), with error.field pointing at the targeting path (#8052).

Tag v3.3.0-beta.0; What's new §Did a failed mutation apply? and §Optional declarations.

Work (after regen)

  • AdcpError(mutation_outcome=...) and projection through MCP, A2A and the payload errors[].
  • The framework sets not_applied where it knows the mutation never ran: validation, auth, idempotency conflicts, pre-dispatch rejections.
  • A typed constructor for unsupported-targeting-dimension details.
  • Buyer: expose mutation_outcome on TaskResult errors.
  • Gate both for callers below 3.3 if a 3.2 schema rejects them.

Batch: C (needs regen).

Activity

  1. added
    no-triageSkip the Claude triage bot — human or designated agent will handle this issue
    sdk-10SDK 10 (next branch, AdCP 3.3)
    on Oct 26, 2026
  2. bokelley commented on Nov 2, 2026

    @bokelley
    ContributorAuthor

    Done on next in #1811 (40a82f5b): AdcpError(mutation_outcome=...) projected on MCP/A2A and errors[]; the framework sets not_applied on pre-dispatch rejections of mutating tools and on IDEMPOTENCY_CONFLICT; UnsupportedTargetingDimensionError / unsupported_targeting_dimension_details; buyer TaskResult.mutation_outcome, ADCPTaskError.mutation_outcome, AdcpErrorInfo.mutation_outcome. No 3.2 gating needed (3.2 core/error.json allows extra properties).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    no-triageSkip the Claude triage bot — human or designated agent will handle this issuesdk-10SDK 10 (next branch, AdCP 3.3)

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions