From 644adbd19abe7646c9ff94523b06308fc754f7fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Tue, 19 May 2026 14:09:58 +0200 Subject: [PATCH] Move sweep before cache lookup to simplify expired entry handling MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.6 (1M context) Signed-off-by: Fredrik Adelöw --- .../entrypoints/userInfo/CachedUserInfoService.ts | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/packages/backend-defaults/src/entrypoints/userInfo/CachedUserInfoService.ts b/packages/backend-defaults/src/entrypoints/userInfo/CachedUserInfoService.ts index 41d7480341..7d26e3af70 100644 --- a/packages/backend-defaults/src/entrypoints/userInfo/CachedUserInfoService.ts +++ b/packages/backend-defaults/src/entrypoints/userInfo/CachedUserInfoService.ts @@ -58,14 +58,6 @@ export class CachedUserInfoService implements UserInfoService { const now = Date.now(); - const cached = this.#entries.get(token); - if (cached) { - if (cached.expiresAt > now) { - return cached.promise; - } - this.#entries.delete(token); - } - if (now - this.#lastSweep > SWEEP_INTERVAL_MS) { this.#lastSweep = now; for (const [key, entry] of this.#entries) { @@ -75,6 +67,11 @@ export class CachedUserInfoService implements UserInfoService { } } + const cached = this.#entries.get(token); + if (cached && cached.expiresAt > now) { + return cached.promise; + } + const promise = this.#delegate.getUserInfo(credentials).catch(error => { this.#entries.delete(token); throw error;