Back to Signal Feed
CodeTracked since May 19, 2026

Preserve tool-call IDs in VertexAI content deserialization

A deserialization bug in google/adk-go PR #690 was fixed so `aiplatformToGenaiContent` now copies the `Id` field for `FunctionCall` and `FunctionResponse`, matching the existing serialization path in `createAiplatformpbContent`; this prevents function response events from being dropped in multi-invocation tool-call sessions that require non-empty IDs.

aiplatformToGenaiContentcreateAiplatformpbContentFunctionCallFunctionResponse

What Happened

  • A deserialization bug in google/adk-go PR #690 was fixed so `aiplatformToGenaiContent` now copies the `Id` field for `FunctionCall` and `FunctionResponse`, matching the existing serialization path in `createAiplatformpbContent`; this prevents function response events from being dropped in multi-invocation tool-call sessions that require non-empty IDs.
  • A deserialization bug in google/adk-go PR #690 was fixed so `aiplatformToGenaiContent` now copies the `Id` field for `FunctionCall` and `FunctionResponse`, matching the existing serialization path in `createAiplatformpbContent`; this prevents function response events from being dropped in multi-invocation tool-call sessions that require non-empty IDs.
  • 1 evidence item attached for review.

What is Different

Before

Scattered source updates, isolated context, and manual follow-up across multiple feeds.

Now

The fix restores round-trip integrity for tool-call event payloads by populating missing `Id` fields during deserialization, and adds a dedicated unit test to lock in this behavior so future changes cannot reintroduce silent response drops.

Why Track This

Why It Matters

Developers building multi-turn tool-calling agents with this SDK will no longer see function responses vanish during a session, which reduces failed or incomplete tool workflows and less manual recovery. Since matching logic in session handling depends on non-empty IDs, the parser now preserves those IDs consistently across serialization/deserialization; continue watching for other protobuf message fields that can desynchronize similarly, and expand regression coverage if multi-turn tool-call routing starts failing in new invocation paths.

Impact

Developers building multi-turn tool-calling agents with this SDK will no longer see function responses vanish during a session, which reduces failed or incomplete tool workflows and less manual recovery. Since matching logic in session handling depends on non-empty IDs, the parser now preserves those IDs consistently across serialization/deserialization; continue watching for other protobuf message fields that can desynchronize similarly, and expand regression coverage if multi-turn tool-call routing starts failing in new invocation paths.

What To Watch Next

  • Watch whether aiplatformToGenaiContent becomes a repeated pattern.
  • Track follow-up changes around LLMOps.
  • Compare future signals against this evidence trail.
  • Re-check risk flags: id_field_regression_in_other_deserializers, tool_call_multi_turn_drop_edge_cases.
Open Topic TimelineOpen Technical EventOpen Original Sourceid_field_regression_in_other_deserializers / tool_call_multi_turn_drop_edge_cases / round_trip_test_coverage_limits / open_pr_not_merged

Supporting Evidence