Skip to content

Conversation

@EmmaLouise2018
Copy link
Contributor

Summary

Fixes the 'SyncCreativesResponse' object has no attribute 'status' error when syncing creatives to the Wonderstruck sales agent via A2A protocol.

Problem

The _handle_sync_creatives_skill method in the A2A server was attempting to access fields (status, summary, results, assignments_summary, assignment_results, context_id, task_id) that don't exist on the SyncCreativesResponse Pydantic model.

Per the AdCP v2.4 spec (PR #113), SyncCreativesResponse only contains domain data:

  • creatives (list of SyncCreativeResult)
  • dry_run (optional boolean)

Protocol fields like status and task_id should be added by the A2A protocol layer, not extracted from the domain response.

Changes

Modified _handle_sync_creatives_skill to only return fields that actually exist on SyncCreativesResponse:

  • success: True (static, since we reach this code only on successful execution)
  • creatives (from response.creatives)
  • dry_run (from response.dry_run)
  • message (string representation using __str__ method)

Testing

Tested with creative sync from Conductor agentic API to Wonderstruck sales agent - error no longer occurs.

🤖 Generated with Claude Code

SyncCreativesResponse only contains domain data (creatives, dry_run).
Protocol fields (status, task_id, etc.) are added by the A2A protocol layer.

Fixes AttributeError: 'SyncCreativesResponse' object has no attribute 'status'
- Clarifies that asset_id (not asset_role) must be used as the key in creative manifests
- Adds documentation that asset_role is for human-readable documentation only
- Syncs with official AdCP spec at adcontextprotocol.org
@EmmaLouise2018 EmmaLouise2018 merged commit 9bf3da7 into main Oct 17, 2025
8 checks passed
danf-newton pushed a commit to Newton-Research-Inc/salesagent that referenced this pull request Nov 24, 2025
…ync-creatives-response-fields

fix: Remove non-existent fields from SyncCreativesResponse
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants