From b13c8fa07f082dc00577ea1d6b53fd11230bcf70 Mon Sep 17 00:00:00 2001 From: remorses Date: Wed, 16 Apr 2025 15:59:16 +0200 Subject: [PATCH 1/3] Update entry.server.node.tsx --- .../react-router-dev/config/defaults/entry.server.node.tsx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/react-router-dev/config/defaults/entry.server.node.tsx b/packages/react-router-dev/config/defaults/entry.server.node.tsx index d3bd0d84a3..76ef55c426 100644 --- a/packages/react-router-dev/config/defaults/entry.server.node.tsx +++ b/packages/react-router-dev/config/defaults/entry.server.node.tsx @@ -19,6 +19,7 @@ export default function handleRequest( return new Promise((resolve, reject) => { let shellRendered = false; let userAgent = request.headers.get("user-agent"); + let timeoutId: NodeJS.Timeout; // Ensure requests from bots and SPA Mode renders wait for all content to load before responding // https://react.dev/reference/react-dom/server/renderToPipeableStream#waiting-for-all-content-to-load-for-crawlers-and-static-generation @@ -45,8 +46,10 @@ export default function handleRequest( ); pipe(body); + clearTimeout(timeoutId); }, onShellError(error: unknown) { + clearTimeout(timeoutId); reject(error); }, onError(error: unknown) { @@ -56,6 +59,7 @@ export default function handleRequest( // reject and get logged in handleDocumentRequest. if (shellRendered) { console.error(error); + clearTimeout(timeoutId); } }, } @@ -63,6 +67,6 @@ export default function handleRequest( // Abort the rendering stream after the `streamTimeout` so it has time to // flush down the rejected boundaries - setTimeout(abort, streamTimeout + 1000); + timeoutId = setTimeout(abort, streamTimeout + 1000); }); } From e5c5fa3ebba2f91e5091f09c4ac9820d099d09a6 Mon Sep 17 00:00:00 2001 From: remorses Date: Wed, 16 Apr 2025 16:01:48 +0200 Subject: [PATCH 2/3] add contributors --- contributors.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/contributors.yml b/contributors.yml index f5aa619629..7f89e40a00 100644 --- a/contributors.yml +++ b/contributors.yml @@ -342,3 +342,4 @@ - yuleicul - zeromask1337 - zheng-chuang +- remorses From 6b1d513e9fa52bee116a58f42556a411c0367b86 Mon Sep 17 00:00:00 2001 From: remorses Date: Wed, 16 Apr 2025 16:06:06 +0200 Subject: [PATCH 3/3] Add changeset Add changeset --- .changeset/funny-suns-explain.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/funny-suns-explain.md diff --git a/.changeset/funny-suns-explain.md b/.changeset/funny-suns-explain.md new file mode 100644 index 0000000000..47418768b5 --- /dev/null +++ b/.changeset/funny-suns-explain.md @@ -0,0 +1,5 @@ +--- +"@react-router/dev": patch +--- + +Cancel aborts timeouts created in the default entry.server.tsx file