Skip to content

A2AClient does not fall back to v0.3 when server does not support v1.0 #331

@darrelmiller

Description

@darrelmiller

Summary

The A2A v1.0 specification describes a version negotiation mechanism where a client sending a v1.0 request to a server that only supports v0.3 should be able to detect the mismatch and fall back to v0.3 semantics. The .NET A2AClient does not implement this fallback behavior.

Expected Behavior

When a client is configured to allow version fallback (e.g., via a client setting or policy), and connects to a server that only supports v0.3:

  1. Client sends request with A2A-Version: 1.0 header
  2. Server responds indicating it only supports v0.3 (e.g., via error or agent card version field)
  3. Client detects the version mismatch and automatically retries using v0.3 semantics (different schema: supportedInterfaces removed, etc.)

This should be controlled by a client-level setting — something like configuring the A2AClient with a version negotiation policy that specifies which versions it is willing to speak and whether fallback is permitted.

Observed Behavior

The A2AClient sends v1.0 requests and does not inspect the server's supported version. If the server only supports v0.3, the client either fails or receives an incompatible response with no attempt to negotiate or retry with v0.3 semantics.

Impact

Many deployed A2A servers still only support v0.3. Clients that upgrade to the v1.0 SDK lose the ability to communicate with these servers unless they manually implement version detection and fallback logic. This is especially important during the transition period where both versions coexist.

Package Version

  • A2A 1.0.0-preview (NuGet)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions