From c8159a36d9b88488d55b9373847d292c3bd4b50e Mon Sep 17 00:00:00 2001 From: Luca Forstner Date: Fri, 24 May 2024 11:00:31 +0000 Subject: [PATCH 1/2] fix(replay): Update matcher for hydration error detection to new React docs --- .../replay-internal/src/coreHandlers/handleBeforeSendEvent.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/replay-internal/src/coreHandlers/handleBeforeSendEvent.ts b/packages/replay-internal/src/coreHandlers/handleBeforeSendEvent.ts index 9427bc60e45b..8612906f2732 100644 --- a/packages/replay-internal/src/coreHandlers/handleBeforeSendEvent.ts +++ b/packages/replay-internal/src/coreHandlers/handleBeforeSendEvent.ts @@ -29,7 +29,9 @@ function handleHydrationError(replay: ReplayContainer, event: ErrorEvent): void if ( // Only matches errors in production builds of react-dom // Example https://reactjs.org/docs/error-decoder.html?invariant=423 - exceptionValue.match(/reactjs\.org\/docs\/error-decoder\.html\?invariant=(418|419|422|423|425)/) || + exceptionValue.match( + /(reactjs\.org\/docs\/error-decoder\.html\?invariant=|react\.dev\/errors\/)(418|419|422|423|425)/, + ) || // Development builds of react-dom // Error 1: Hydration failed because the initial UI does not match what was rendered on the server. // Error 2: Text content does not match server-rendered HTML. Warning: Text content did not match. From 4e8c311d0bf505aa088bbfdc64340cc1dcc7fe02 Mon Sep 17 00:00:00 2001 From: Luca Forstner Date: Fri, 24 May 2024 11:04:21 +0000 Subject: [PATCH 2/2] comment --- .../replay-internal/src/coreHandlers/handleBeforeSendEvent.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/replay-internal/src/coreHandlers/handleBeforeSendEvent.ts b/packages/replay-internal/src/coreHandlers/handleBeforeSendEvent.ts index 8612906f2732..297d0bc2bbe3 100644 --- a/packages/replay-internal/src/coreHandlers/handleBeforeSendEvent.ts +++ b/packages/replay-internal/src/coreHandlers/handleBeforeSendEvent.ts @@ -29,6 +29,7 @@ function handleHydrationError(replay: ReplayContainer, event: ErrorEvent): void if ( // Only matches errors in production builds of react-dom // Example https://reactjs.org/docs/error-decoder.html?invariant=423 + // With newer React versions, the messages changed to a different website https://react.dev/errors/418 exceptionValue.match( /(reactjs\.org\/docs\/error-decoder\.html\?invariant=|react\.dev\/errors\/)(418|419|422|423|425)/, ) ||