a2aproject / a2aproject/a2a-python

[Bug]: `A2A-Version` validation ignores minor versions and the query parameter

Open
#1,204 2 comments 0 reactions 1 assignee Claimed by @rohityan View on GitHub
component: server status:awaiting response status:stale
Dominant language
Python
Stars
2.1k
Forks
496
Avg merge
4d 17h
Merged PRs (30d)
12

Description

### What happened?

The specification says:

> “Agents MUST process requests using the semantics of the requested `A2A-Version` (matching `Major.Minor`).”

and

> “Clients MAY provide the `A2A-Version` as a request parameter instead of a header.”

The implementation seems to miss both points.

1. The code compares only `major`:

```python
return actual_v.major == expected_v.major
```

2. The query parameter is ignored.

```python
actual_version = headers.get(
constants.VERSION_HEADER
) or headers.get(constants.VERSION_HEADER.lower())

if not actual_version:
return constants.PROTOCOL_VERSION_0_3

return str(actual_version)
```

A similar issue existed: https://github.com/a2aproject/a2a-python/issues/856 but it was not *fully* fixed.

### Code of Conduct

- [x] I agree to follow this project's Code of Conduct

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.