Skip to content

Commit 828699f

Browse files
committed
fix: update _latest_agent_message after event replacement in update_message
Prevents stale eventId references by updating the tracked latest message with the new eventId after a successful create+delete replacement.
1 parent 59da496 commit 828699f

1 file changed

Lines changed: 12 additions & 0 deletions

File tree

src/bedrock_agentcore/memory/integrations/strands/session_manager.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -706,6 +706,18 @@ def update_message(self, session_id: str, agent_id: str, session_message: Sessio
706706
f"Failed to update message: could not delete old event: {delete_error}"
707707
) from delete_error
708708

709+
# Update _latest_agent_message so it doesn't hold a stale eventId
710+
new_event_id = new_event.get("eventId") if new_event else None
711+
latest_messages = getattr(self, "_latest_agent_message", None)
712+
if new_event_id and latest_messages and agent_id in latest_messages:
713+
old_latest = latest_messages[agent_id]
714+
if old_latest.message_id == old_message_id:
715+
self._latest_agent_message[agent_id] = SessionMessage(
716+
message=session_message.message,
717+
message_id=new_event_id,
718+
created_at=session_message.created_at,
719+
)
720+
709721
logger.info("Updated message in AgentCore Memory: replaced event %s", old_message_id)
710722

711723
def list_messages(

0 commit comments

Comments
 (0)