From 5761d04e89cb18d2f3eaf5313de24fe25f296b24 Mon Sep 17 00:00:00 2001 From: Billy Vong Date: Tue, 27 Jan 2026 12:31:56 -0500 Subject: [PATCH 1/3] fix(replay): Improve error messages when compression worker fails to load Previously, when the compression worker failed to load (e.g., due to CSP restrictions, network issues), Sentry captured a generic ErrorEvent with almost no useful information ("Event: Event `Event` (type=error)"). This change wraps worker errors in descriptive Error objects that explain what failed and common causes, making debugging significantly easier. Fixes JAVASCRIPT-337J Co-Authored-By: Claude Opus 4.5 --- .../replay-internal/src/eventBuffer/WorkerHandler.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/replay-internal/src/eventBuffer/WorkerHandler.ts b/packages/replay-internal/src/eventBuffer/WorkerHandler.ts index 69b77378eeee..9374a20cb92e 100644 --- a/packages/replay-internal/src/eventBuffer/WorkerHandler.ts +++ b/packages/replay-internal/src/eventBuffer/WorkerHandler.ts @@ -33,7 +33,8 @@ export class WorkerHandler { if ((data as WorkerResponse).success) { resolve(); } else { - reject(); + DEBUG_BUILD && debug.warn('Received worker message w/ unsuccessful status', data); + reject(new Error('Received worker message w/ unsuccessful status')); } }, { once: true }, @@ -42,7 +43,12 @@ export class WorkerHandler { this._worker.addEventListener( 'error', error => { - reject(error); + DEBUG_BUILD && debug.warn('Failed to load Replay compression worker', error); + reject( + new Error( + `Failed to load Replay compression worker: ${error instanceof ErrorEvent && error.message ? error.message : 'Unknown error. This can happen due to CSP policy restrictions, network issues, or the worker script failing to load.'}`, + ), + ); }, { once: true }, ); From 25774a836f89c2ed8dbc9548fd78413099cb5787 Mon Sep 17 00:00:00 2001 From: Billy Vong Date: Wed, 28 Jan 2026 17:11:02 -0500 Subject: [PATCH 2/3] Update packages/replay-internal/src/eventBuffer/WorkerHandler.ts Co-authored-by: Andrei <168741329+andreiborza@users.noreply.github.com> --- packages/replay-internal/src/eventBuffer/WorkerHandler.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/replay-internal/src/eventBuffer/WorkerHandler.ts b/packages/replay-internal/src/eventBuffer/WorkerHandler.ts index 9374a20cb92e..21a5d9be0efa 100644 --- a/packages/replay-internal/src/eventBuffer/WorkerHandler.ts +++ b/packages/replay-internal/src/eventBuffer/WorkerHandler.ts @@ -34,7 +34,7 @@ export class WorkerHandler { resolve(); } else { DEBUG_BUILD && debug.warn('Received worker message w/ unsuccessful status', data); - reject(new Error('Received worker message w/ unsuccessful status')); + reject(new Error('Received worker message with unsuccessful status')); } }, { once: true }, From ac44c5a5273cf910494beff50cf8399298085da9 Mon Sep 17 00:00:00 2001 From: Billy Vong Date: Wed, 28 Jan 2026 17:11:32 -0500 Subject: [PATCH 3/3] Apply suggestion from @billyvg --- packages/replay-internal/src/eventBuffer/WorkerHandler.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/replay-internal/src/eventBuffer/WorkerHandler.ts b/packages/replay-internal/src/eventBuffer/WorkerHandler.ts index 21a5d9be0efa..790185712b1c 100644 --- a/packages/replay-internal/src/eventBuffer/WorkerHandler.ts +++ b/packages/replay-internal/src/eventBuffer/WorkerHandler.ts @@ -33,7 +33,7 @@ export class WorkerHandler { if ((data as WorkerResponse).success) { resolve(); } else { - DEBUG_BUILD && debug.warn('Received worker message w/ unsuccessful status', data); + DEBUG_BUILD && debug.warn('Received worker message with unsuccessful status', data); reject(new Error('Received worker message with unsuccessful status')); } },