Paginate deleteByConversationId to delete all events#55
Open
vaquarkhan wants to merge 1 commit intospring-ai-community:mainfrom
Open
Paginate deleteByConversationId to delete all events#55vaquarkhan wants to merge 1 commit intospring-ai-community:mainfrom
vaquarkhan wants to merge 1 commit intospring-ai-community:mainfrom
Conversation
deleteByConversationId() called listEvents once with maxResults(pageSize) but never followed nextToken for subsequent pages. Conversations with more events than pageSize had remaining events silently orphaned — never deleted, never visible, wasting storage indefinitely. Added a do/while pagination loop matching the existing fetchAllEvents() pattern to ensure all events across all pages are deleted. Fixes: deleteByConversationId only deletes first page of events
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
AgentCoreShortTermMemoryRepository.deleteByConversationId()callslistEventsonce withmaxResults(pageSize)but never paginates usingnextToken. If a conversation has more events thanpageSize, the remaining events are silently orphaned — never deleted, never visible, wasting storage indefinitely.Root Cause
The
fetchAllEvents()method in the same class correctly implements pagination with ado/whileloop checkingnextToken. ThedeleteByConversationId()method was simply missing the same pattern.Changes
AgentCoreShortTermMemoryRepository.java— Addeddo/whilepagination loop withnextTokenhandling indeleteByConversationId(), matching the existingfetchAllEvents()patternBefore vs After