a2aproject / a2aproject/a2a-java

[Bug]: a2a-java client sends message with empty task ID and context ID

Ouverte
#770 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
Java
Étoiles
490
Forks
172
Merge moyen
1 j 6 h
PR mergées (30 j)
55

Description

### What happened?

While investigating errors reported by https://darrelmiller.github.io/agentbin/index.html, I found out that messages sent by the A2A Java client contains empty `taskId` and `contextId`.
They look like (verbatim):

```
curl -sN -X POST https://agentbin.greensmoke-1163cb63.eastus.azurecontainerapps.io/spec \
-H "Content-Type: application/json" \
-H "Accept: text/event-stream" \
-d '{
"jsonrpc": "2.0",
"id": "839ffa13-d966-462c-88a2-136805189343",
"method": "SendStreamingMessage",
"params": {
"tenant": "",
"message": {
"messageId": "'$(uuidgen | tr '[:upper:]' '[:lower:]')'",
"taskId": "",
"contextId": "",
"role": "ROLE_USER",
"parts": [
{
"text": "task-lifecycle process this",
"metadata": {},
"filename": "",
"mediaType": ""
}
],
"metadata": {},
"extensions": [],
"referenceTaskIds": []
},
"configuration": {
"acceptedOutputModes": [],
"returnImmediately": false
},
"metadata": {}
}
}'
```

I think the .Net remote agent should reject these messages (or ignore the empty taskId) but it replies with responses such as

```
data: {"jsonrpc":"2.0","id":"839ffa13-d966-462c-88a2-136805189343","result":{"task":{"id":"","contextId":"","status":{"state":"TASK_STATE_SUBMITTED","timestamp":"2026-03-26T12:06:00.4665426+00:00"}}}}
```

which are not deserialised by the a2a-java SDK due to the empty task.id.

The a2a-java client should omit optional fields that are not set when sending messages.
If I remove the `taskId: ""` field from the reproducer, the .Net agent replies with a generated taskId as expected.

### Relevant log output

```shell

```

### Code of Conduct

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

Guide de contribution

Ouvrir le guide de contribution

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.