a2aproject / a2aproject/a2a-python

[Bug]: raised InvalidAgentResponseError

Abierto
#1,113 4 comentarios 0 reacciones 1 asignado Reclamado por @rohityan Ver en GitHub
component: server
Lenguaje dominante
Python
Estrellas
2.1k
Forks
496
Merge medio
4 d 17 h
PR fusionados (30 d)
12

Descripción

### What happened?

If you create a task when the agent receives a query and you want to return the response as a Message with the task associated, you will get the following error:

`InvalidAgentResponseError: Received Message object in task mode. Use TaskStatusUpdateEvent or TaskArtifactUpdateEvent instead.`

It looks an architectural decision but into specification we can associate a task with message.
My idea was to retrieve the Message when I run a single call and TaskArtifacts during streaming operation. The diagram flows inside the specification shows that you can associate a task to the Message.

### Relevant log output

```shell
[ERROR] 2026-06-23 16:28:46 - Consumer[c5185e3b-e7b9-49d9-a078-85ee5c496b0d]: Failed (active_task:140)
Traceback (most recent call last):
File "a2a/server/agent_execution/active_task.py", line 132, in run
await self._process_event(event)
File "a2a/server/agent_execution/active_task.py", line 179, in _process_event
self._handle_message_event(event)
File "a2a/server/agent_execution/active_task.py", line 198, in _handle_message_event
raise InvalidAgentResponseError(
a2a.utils.errors.InvalidAgentResponseError: Received Message object in task mode. Use TaskStatusUpdateEvent or TaskArtifactUpdateEvent instead.
[ERROR] 2026-06-23 16:28:46 - Unhandled exception in v0.3 JSONRPCAdapter (jsonrpc_adapter:142)
Traceback (most recent call last):
File "a2a/compat/v0_3/jsonrpc_adapter.py", line 138, in handle_request
return await self._process_non_streaming_request(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "a2a/utils/version_validator.py", line 126, in async_wrapper
return await func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "a2a/compat/v0_3/jsonrpc_adapter.py", line 157, in _process_non_streaming_request
res_msg = await self.handler.on_message_send(request_obj, context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "a2a/compat/v0_3/request_handler.py", line 30, in on_message_send
task_or_message = await self.request_handler.on_message_send(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "a2a/utils/telemetry.py", line 242, in async_wrapper
result = await func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "a2a/server/request_handlers/request_handler.py", line 285, in async_wrapper
return await method(self, params, context, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "a2a/server/request_handlers/default_request_handler_v2.py", line 242, in on_message_send
async for raw_event in active_task.subscribe(
File "a2a/server/agent_execution/active_task.py", line 639, in subscribe
raise event
File "a2a/server/agent_execution/active_task.py", line 132, in run
await self._process_event(event)
File "a2a/server/agent_execution/active_task.py", line 179, in _process_event
self._handle_message_event(event)
File "a2a/server/agent_execution/active_task.py", line 198, in _handle_message_event
raise InvalidAgentResponseError(
a2a.utils.errors.InvalidAgentResponseError: Received Message object in task mode. Use TaskStatusUpdateEvent or TaskArtifactUpdateEvent instead.
```

### Code of Conduct

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

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.