Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion contributing/samples/gepa/experiment.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,6 @@
from tau_bench.types import EnvRunResult
from tau_bench.types import RunConfig
import tau_bench_agent as tau_bench_agent_lib

import utils


Expand Down
1 change: 0 additions & 1 deletion contributing/samples/gepa/run_experiment.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@
from absl import flags
import experiment
from google.genai import types

import utils

_OUTPUT_DIR = flags.DEFINE_string(
Expand Down
17 changes: 17 additions & 0 deletions src/google/adk/runners.py
Original file line number Diff line number Diff line change
Expand Up @@ -1208,13 +1208,30 @@ async def _setup_context_for_resumed_invocation(
ValueError: If the session has no events to resume; If no user message is
available for resuming the invocation; Or if the app is not resumable.
"""

if not session.events:
raise ValueError(f'Session {session.id} has no events to resume.')

# Step 1: Maybe retrieve a previous user message for the invocation.
user_message = new_message or self._find_user_message_for_invocation(
session.events, invocation_id
)

# === [START FIX] Fallback mechanism ===
if not user_message and session.events:
# If exact invocation match failed, try to find the latest user message
# This handles cases where invocation IDs might have drifted or for generic resume
for event in reversed(session.events):
if event.author == 'user' and event.content:
logger.warning(
'Could not find user message for invocation %s. Falling back to '
'the latest user message in the session.',
invocation_id,
)
user_message = event.content
break
# === [END FIX] ===

if not user_message:
raise ValueError(
f'No user message available for resuming invocation: {invocation_id}'
Expand Down