Back to Signal Feed
CodeTracked since May 22, 2026

Preserve ThoughtSignature on ADK synthetic confirmation calls

This PR fixes a regression in ADK’s confirmation replay flow: synthetic `adk_request_confirmation` function-call parts were created without copying the original call’s `ThoughtSignature`, which caused Gemini thinking models to reject them with `400 INVALID_ARGUMENT`. The fix now ensures the replayed confirmation part inherits that signature.

generateRequestConfirmationEventadk_request_confirmationThoughtSignatureFunctionCall

What Happened

  • This PR fixes a regression in ADK’s confirmation replay flow: synthetic `adk_request_confirmation` function-call parts were created without copying the original call’s `ThoughtSignature`, which caused Gemini thinking models to reject them with `400 INVALID_ARGUMENT`. The fix now ensures the replayed confirmation part inherits that signature.
  • This PR fixes a regression in ADK’s confirmation replay flow: synthetic `adk_request_confirmation` function-call parts were created without copying the original call’s `ThoughtSignature`, which caused Gemini thinking models to reject them with `400 INVALID_ARGUMENT`. The fix now ensures the replayed confirmation part inherits that signature.
  • 1 evidence item attached for review.

What is Different

Before

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

Now

Copies the original model `FunctionCall`’s `ThoughtSignature` into synthetic confirmation parts during request confirmation generation, closing a compatibility gap with replayed model-role function calls and preventing signature-related rejection on Gemini thinking models.

Why Track This

Why It Matters

For applications using ADK tool-calling with Gemini thinking models, replayed confirmation calls now avoid the `function call adk_request_confirmation is missing a thought_signature` failure, so conversations are less likely to stop mid-flow and require operator retries. Technically, the change updates synthetic confirmation construction in `internal/llminternal/functions.go` to look up the source call by function-call ID and transfer the signature when available, which should be monitored after rollout for any remaining replay paths that might still drop signatures.

Impact

For applications using ADK tool-calling with Gemini thinking models, replayed confirmation calls now avoid the `function call adk_request_confirmation is missing a thought_signature` failure, so conversations are less likely to stop mid-flow and require operator retries. Technically, the change updates synthetic confirmation construction in `internal/llminternal/functions.go` to look up the source call by function-call ID and transfer the signature when available, which should be monitored after rollout for any remaining replay paths that might still drop signatures.

What To Watch Next

  • Watch whether generateRequestConfirmationEvent becomes a repeated pattern.
  • Track follow-up changes around Tool Calling.
  • Compare future signals against this evidence trail.
  • Re-check risk flags: function_call_id_lookup_mismatch, other_replay_paths_missing_signature_copy.
Open Topic TimelineOpen Technical EventOpen Original Sourcefunction_call_id_lookup_mismatch / other_replay_paths_missing_signature_copy / post_merge_coverage_gap_in_integration_tests

Supporting Evidence