From d63ce1f68b18a424fb4579f9288f8cba86da10ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89mile=20R=C3=A9?= Date: Thu, 16 Apr 2026 13:40:45 +0400 Subject: [PATCH] Fix expired queue entries persisting past MAX_AGE_MS MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The flush function pruned expired entries in memory but re-read from localStorage before writing back, so the age filter was never persisted. Apply the age cutoff to the final write filter and remove the early return that skipped the write entirely on full send failure. Signed-off-by: Émile Ré --- packages/cookie-banner/src/queue.ts | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/packages/cookie-banner/src/queue.ts b/packages/cookie-banner/src/queue.ts index d5d6beb54..cdc859647 100644 --- a/packages/cookie-banner/src/queue.ts +++ b/packages/cookie-banner/src/queue.ts @@ -93,14 +93,13 @@ export async function flush(bannerId: string): Promise { } } - if (sentTimestamps.length === 0) { - return; - } - const sentSet = new Set(sentTimestamps); + const cutoff = now - MAX_AGE_MS; const current = readQueue(bannerId); writeQueue( bannerId, - current.filter((entry) => !sentSet.has(entry.timestamp)), + current.filter( + (entry) => !sentSet.has(entry.timestamp) && entry.timestamp > cutoff, + ), ); }