Skip to content

Commit

Permalink
fix(replay): Adjust development hydration error messages (#9922)
Browse files Browse the repository at this point in the history
Refine the regex to match fewer errors, seeing some false positives in
replays that are not hydration errors.

fixes getsentry/sentry#61943
  • Loading branch information
scttcper committed Dec 19, 2023
1 parent c85b2e4 commit 2d69912
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 3 deletions.
5 changes: 3 additions & 2 deletions packages/replay/src/coreHandlers/handleBeforeSendEvent.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,9 @@ function handleHydrationError(replay: ReplayContainer, event: ErrorEvent): void
// Example https://reactjs.org/docs/error-decoder.html?invariant=423
exceptionValue.match(/reactjs\.org\/docs\/error-decoder\.html\?invariant=(418|419|422|423|425)/) ||
// Development builds of react-dom
// Example Text: content did not match. Server: "A" Client: "B"
exceptionValue.match(/(hydration|content does not match|did not match)/i)
// 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.
exceptionValue.match(/(does not match server-rendered HTML|Hydration failed because)/i)
) {
const breadcrumb = createBreadcrumb({
category: 'replay.hydrate-error',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,8 @@ describe('Integration | coreHandlers | handleBeforeSendEvent', () => {
const addBreadcrumbSpy = jest.spyOn(replay, 'throttledAddEvent');

const error = Error();
error.exception.values[0].value = 'Text content did not match. Server: "A" Client: "B"';
error.exception.values[0].value =
'Text content does not match server-rendered HTML. Warning: Text content did not match.';
handler(error);

expect(addBreadcrumbSpy).toHaveBeenCalledTimes(1);
Expand Down

0 comments on commit 2d69912

Please sign in to comment.