Skip to content

[Bug]: raised InvalidAgentResponseError #1113

Description

@carmine-sacco

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

[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

  • I agree to follow this project's Code of Conduct

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No fields configured for Bug.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions