Skip to content

Commit abd66a3

Browse files
committed
fix: guard against None converter results in RemoteA2aAgent
Converter functions (convert_a2a_message_to_event, convert_a2a_task_to_event) return Optional[Event], but several handler paths in RemoteA2aAgent access attributes on the result without checking for None first. This causes AttributeError when a converter returns None (e.g., for empty messages or metadata-only events). Add `if not event: return None` guards at all four call sites in both the legacy and new-style response handlers. Github-Issue: #5187
1 parent 114deef commit abd66a3

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

src/google/adk/agents/remote_a2a_agent.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -476,6 +476,8 @@ async def _handle_a2a_response(
476476
event = convert_a2a_message_to_event(
477477
update.status.message, self.name, ctx, self._a2a_part_converter
478478
)
479+
if not event:
480+
return None
479481
if event.content is not None and update.status.state in (
480482
TaskState.submitted,
481483
TaskState.working,
@@ -501,6 +503,8 @@ async def _handle_a2a_response(
501503
# for now.
502504
return None
503505

506+
if not event:
507+
return None
504508
event.custom_metadata = event.custom_metadata or {}
505509
event.custom_metadata[A2A_METADATA_PREFIX + "task_id"] = task.id
506510
if task.context_id:
@@ -513,6 +517,8 @@ async def _handle_a2a_response(
513517
event = convert_a2a_message_to_event(
514518
a2a_response, self.name, ctx, self._a2a_part_converter
515519
)
520+
if not event:
521+
return None
516522
event.custom_metadata = event.custom_metadata or {}
517523

518524
if a2a_response.context_id:
@@ -583,6 +589,8 @@ async def _handle_a2a_response_v2(
583589
event = self._config.a2a_message_converter(
584590
a2a_response, self.name, ctx, self._config.a2a_part_converter
585591
)
592+
if not event:
593+
return None
586594
event.custom_metadata = event.custom_metadata or {}
587595

588596
if a2a_response.context_id:

0 commit comments

Comments
 (0)