---
schema_version: "1"
id: 9511170a7c9039ad03bcee316c7a73a73db95747571c5c76a05cbb2c8980a741
title: A2A v1 to v0.3 Transcoder Policy
collection: mulesoft
version: current
locale: en-us
portal_url: https://docs.salesforce.com/mulesoft/current/en-us/gateway/1.13/policies-outbound-a2a-v1-to-v03-transcoder.md
canonical_url: https://docs.mulesoft.com/gateway/1.13/policies-outbound-a2a-v1-to-v03-transcoder
source_site: docs.mulesoft.com
content_type: documentation
content_hash: 2abfa10e477aad43c2120a443e039bfdb3e830233ba407fdb5dfc87fda714874
description: MuleSoft Documentation Site
release: "1.13"
latest: false
---
---
product: Omni Gateway
version: 1.13
keywords: api gateway, flex gateway, gateway, policy, a2a, transcoder, outbound
---

# A2A v1 to v0.3 Transcoder Policy

> For the full documentation index, see: https://docs.mulesoft.com/llms.txt

<table><colgroup><col> <col></colgroup><tbody><tr><td><p><strong>Policy Name</strong></p></td><td><p>A2A v1 to v0.3 Transcoder</p></td></tr><tr><td><p><strong>Summary</strong></p></td><td><p>Transcodes protocol messages bidirectionally between A2A v1.0 JSON-RPC clients and A2A v0.3 backend servers</p></td></tr><tr><td><p><strong>Category</strong></p></td><td><p>A2A</p></td></tr><tr><td><p><strong>First Omni Gateway version available</strong></p></td><td><p>v1.13.0</p></td></tr><tr><td><p><strong>Release Notes</strong></p></td><td><p><a href="https://docs.mulesoft.com/release-notes/gateway/policies/a2a-v1-to-v03-transcoder-release-notes">A2A v1 to v0.3 Transcoder Policy</a></p></td></tr><tr><td><p><strong>Returned Status Codes</strong></p></td><td><p>-32601 (UNSUPPORTED_METHOD_FOR_V03), -32003 (PUSH_NOTIFICATION_NOT_SUPPORTED)</p></td></tr></tbody></table>

> [!NOTE] This policy supports Agent2Agent Protocol (A2A) version v0.3.0. To learn more about A2A
> versions, see [A2A Releases](https://github.com/a2aproject/A2A/releases).

## Summary

The A2A v1 to v0.3 Transcoder policy enables A2A v1.0 JSON-RPC clients, such as Broker v2 and Mule
A2A Connector v2, to communicate with A2A v0.3 backend agents without requiring backend upgrades.
This is an outbound policy. Apply it to the upstream of an A2A v0.3 backend server instance. The
policy transcodes protocol messages bidirectionally, enabling organizations to upgrade their clients
to A2A v1.0 while continuing to use existing v0.3 backends, including third-party agents.

The policy transforms the following elements between v1.0 and v0.3 formats:

- **Method names**: Converts between v1.0 method names (`SendMessage`, `GetTask`, `SubscribeToTask`)
  and v0.3 method names (`message/send`, `tasks/get`, `tasks/resubscribe`)

- **Message part structure**: Converts between v1.0 JSON member names and the v0.3 `kind`
  discriminator (`text`, `file`, `data`)

- **Enumerations**: Transcodes enum values such as `Message.role` from `ROLE_USER` to `user` and
  `TaskState` from `TASK_STATE_SUBMITTED` to `submitted`

- **Error formats**: Converts between the v1.0 `google.rpc.ErrorInfo` array format and the v0.3
  plain string format

- **Agent cards**: Transforms agent card responses from the v0.3 format to the v1.0 format with
  `additionalInterfaces`

- **Server-Sent Events (SSE)**: Transcodes SSE streams for `SendStreamingMessage` and
  `SubscribeToTask` per-event

The policy applies these transformations in both directions: v1.0 to v0.3 for outbound requests and
v0.3 to v1.0 for inbound responses.

### Transformation Limitations

The following A2A v1.0 methods aren’t supported when transcoding to v0.3:

- **ListTasks**: The v0.3 protocol has no JSON-RPC equivalent for this method. Requests are rejected
  with error code `-32601 UNSUPPORTED_METHOD_FOR_V03`.

- **Push notification configuration methods**: All push notification methods
  (`CreateTaskPushNotificationConfig`, `GetTaskPushNotificationConfig`,
  `ListTaskPushNotificationConfigs`, `DeleteTaskPushNotificationConfig`) are rejected with error
  code `-32003 PUSH_NOTIFICATION_NOT_SUPPORTED`.

All other v1.0 methods are supported with full transcoding.

> [!NOTE] This policy supports A2A v1.0 JSON-RPC clients only. The HTTP+JSON REST binding isn’t
> supported.

## Configuring Policy Parameters

### Omni Gateway Local Mode

The A2A v1 to v0.3 Transcoder policy isn’t supported in Local Mode.

### Managed Omni Gateway and Omni Gateway Connected Mode

When you apply the policy from the UI, the following parameters are displayed:

This policy has no configurable parameters. The method mappings, enum conversions, and limitation
gates are built into the policy and are automatically applied.

## Examples

### Basic Configuration

This example applies the transcoder policy to a v0.3 backend agent and allows v1.0 clients to
communicate with it:

```yaml
apiVersion: gateway.mulesoft.com/v1alpha1
kind: PolicyBinding
metadata:
  name: a2a-v1-to-v03-transcoder
spec:
  targetRef:
    kind: ApiInstance
    name: my-v03-a2a-agent
  policyRef:
    name: a2a-v1-to-v03-transcoder
```

### Use Case: Gradual Migration

This policy is useful for organizations performing a gradual migration from A2A v0.3 to v1.0:

1.  Upgrade client applications such as Broker and connectors to A2A v1.0.

2.  Apply this transcoder policy to existing v0.3 backend agents.

3.  Clients can immediately use v1.0 features while backends remain on v0.3.

4.  Upgrade backend agents to v1.0 at your own pace.

5.  Remove the transcoder policy once all backends are upgraded to v1.0.
