Skip to content

Commit 03ef3f6

Browse files
committed
fix(sessions): guard None event.actions before reading state_delta
BaseSessionService guards `event.actions` for None before reading state_delta in _apply_temp_state, _trim_temp_delta_state, and _update_session_state, matching prior behavior for callers that build events with actions unset. InMemorySessionService applies the same guard in append_event. Change-Id: I6598ac68711ebb360f8081c2f895e1dc17942ad5
1 parent 020386a commit 03ef3f6

2 files changed

Lines changed: 4 additions & 4 deletions

File tree

src/google/adk/sessions/base_session_service.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ def _apply_temp_state(self, session: Session, event: Event) -> None:
138138
the duration of the current invocation but is NOT persisted to storage
139139
(the event delta is trimmed separately by _trim_temp_delta_state).
140140
"""
141-
if not event.actions.state_delta:
141+
if not event.actions or not event.actions.state_delta:
142142
return
143143
for key, value in event.actions.state_delta.items():
144144
if key.startswith(State.TEMP_PREFIX):
@@ -151,7 +151,7 @@ def _trim_temp_delta_state(self, event: Event) -> Event:
151151
in-memory session state (updated by _apply_temp_state) retains the
152152
values for the duration of the current invocation.
153153
"""
154-
if not event.actions.state_delta:
154+
if not event.actions or not event.actions.state_delta:
155155
return event
156156

157157
event.actions.state_delta = {
@@ -163,7 +163,7 @@ def _trim_temp_delta_state(self, event: Event) -> Event:
163163

164164
def _update_session_state(self, session: Session, event: Event) -> None:
165165
"""Updates the session state based on the event."""
166-
if not event.actions.state_delta:
166+
if not event.actions or not event.actions.state_delta:
167167
return
168168
for key, value in event.actions.state_delta.items():
169169
session.state.update({key: value})

src/google/adk/sessions/in_memory_session_service.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -346,7 +346,7 @@ def _warning(message: str) -> None:
346346
storage_session.events.append(event)
347347
storage_session.last_update_time = event.timestamp
348348

349-
if event.actions.state_delta:
349+
if event.actions and event.actions.state_delta:
350350
state_deltas = _session_util.extract_state_delta(
351351
event.actions.state_delta
352352
)

0 commit comments

Comments
 (0)