From a59f53a603306777fc6f949d84ce85f09bba4e4c Mon Sep 17 00:00:00 2001 From: Sebastian Silbermann Date: Tue, 8 Mar 2022 15:13:47 +0100 Subject: [PATCH] Fizz: Prevent UnhandledPromiseRejection if shell errors (#24043) --- packages/react-dom/src/server/ReactDOMFizzServerBrowser.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/react-dom/src/server/ReactDOMFizzServerBrowser.js b/packages/react-dom/src/server/ReactDOMFizzServerBrowser.js index 219c4a1bf7b1e..1ae511ede561d 100644 --- a/packages/react-dom/src/server/ReactDOMFizzServerBrowser.js +++ b/packages/react-dom/src/server/ReactDOMFizzServerBrowser.js @@ -67,6 +67,10 @@ function renderToReadableStream( resolve(stream); } function onShellError(error: mixed) { + // If the shell errors the caller of `renderToReadableStream` won't have access to `allReady`. + // However, `allReady` will be rejected by `onFatalError` as well. + // So we need to catch the duplicate, uncatchable fatal error in `allReady` to prevent a `UnhandledPromiseRejection`. + allReady.catch(() => {}); reject(error); } const request = createRequest(