From bd5c527548e9aab7494820697adbb9f8a39c3b90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89mile=20R=C3=A9?= Date: Tue, 26 May 2026 12:07:30 +0200 Subject: [PATCH] fix(cookie-banner): disconnect observer in load() error path MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When fetchJSON failed, load() unconditionally overwrote this.observer with a fresh MutationObserver, leaving any previous one observing the DOM. Repeated load() calls that hit the catch branch leaked one observer per call. Mirror the disconnect-first pattern already used in activate(). Signed-off-by: Émile Ré --- packages/cookie-banner/src/client.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/cookie-banner/src/client.ts b/packages/cookie-banner/src/client.ts index eb0277e92..435f46c99 100644 --- a/packages/cookie-banner/src/client.ts +++ b/packages/cookie-banner/src/client.ts @@ -93,6 +93,9 @@ export class CookieBannerClient { config = await fetchJSON(configUrl); } catch { this.startDetector(); + if (this.observer) { + this.observer.disconnect(); + } this.observer = observeAndActivate({}, {}); getConsent()._setReady({}, false); return;