a2aproject / a2aproject/a2a-python

[Bug]: raised InvalidAgentResponseError

Đang mở
#1,113 4 bình luận 0 reaction 1 người được giao Được @rohityan nhận Xem trên GitHub
component: server
Ngôn ngữ chính
Python
Star
2.1k
Fork
496
Merge trung bình
4 ngày 17 giờ
Pull request đã merge (30 ngày)
12

Mô tả

### 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

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.