Skip to content

[Bug]: outdated / mismatched a2a.proto on grpc spec for compat-0.3 #1158

Description

@charmaineet

This is the Part definition in compat-0.3/spec-grpc/src/main/proto/a2a.proto. It seems to be missing the optional metadata field, according to python's a2a sdk for compat-0.3 there is a

java (compat-0.3/spec-grpc/src/main/proto/a2a.proto)
message Part {
oneof part {
string text = 1;
FilePart file = 2;
DataPart data = 3;
}
}

python (src/a2a/compat/v0_3/a2a_v0_3.proto)
message Part {
oneof part {
string text = 1;
FilePart file = 2;
DataPart data = 3;
}
// Optional metadata associated with this part.
google.protobuf.Struct metadata = 4;
}

This results in the SDK failing to parse the metadata field from responses that includes it.

Activity

  1. added theissue type on Sep 18, 2026
  2. kabir commented on Sep 18, 2026

    @kabir
    Collaborator

    I don't know what a2a-python has done, but the spec version of the 0.3 a2a.proto is here: https://github.com/a2aproject/A2A/blob/v0.3.0/specification/grpc/a2a.proto

    This is the one implementations should be aligned with, so I think what you are describing is probably a bug in a2a-python?

  3. charmaineet commented on Sep 18, 2026

    @charmaineet
    Author
    Image

    I think this is the protocol definition on https://a2a-protocol.org/v0.3.0/specification/, so I think the python one should be correct? the metadata field is an optional field

  4. kabir commented on Sep 22, 2026

    @kabir
    Collaborator

    @charmaineet Thank you for the clarification. It isn't the first time the 0.3 spec and proto have been out of sync ;-)

    Does #1169 meet your needs?

  5. charmaineet commented on Sep 23, 2026

    @charmaineet
    Author

    @kabir thanks for the fix, yes it does!

  6. charmaineet commented on Sep 24, 2026

    @charmaineet
    Author

    @kabir Can we have this merge released in a week if possible? Thank you so much!

  7. kabir commented on Sep 25, 2026

    @kabir
    Collaborator

    @charmaineet Will do one early next week :-)

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 labels
    No labels

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions