From 70a67761edacd62bba39232523c2dea7525205ef Mon Sep 17 00:00:00 2001 From: Maks Pikov Date: Tue, 31 Mar 2026 22:26:21 +0000 Subject: [PATCH] fix(react-router): use onShellError instead of onError to destroy stream on unrecoverable SSR errors --- packages/react-router/src/ssr/renderRouterToStream.tsx | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/react-router/src/ssr/renderRouterToStream.tsx b/packages/react-router/src/ssr/renderRouterToStream.tsx index 3621bf667d9..34310555bf2 100644 --- a/packages/react-router/src/ssr/renderRouterToStream.tsx +++ b/packages/react-router/src/ssr/renderRouterToStream.tsx @@ -59,15 +59,17 @@ export const renderRouterToStream = async ({ pipeable.pipe(reactAppPassthrough) }, }), - onError: (error, info) => { - console.error('Error in renderToPipeableStream:', error, info) - // Destroy the passthrough stream on error + onShellError(error) { + console.error('Error in renderToPipeableStream:', error) if (!reactAppPassthrough.destroyed) { reactAppPassthrough.destroy( error instanceof Error ? error : new Error(String(error)), ) } }, + onError: (error, info) => { + console.error('Error in renderToPipeableStream:', error, info) + }, }) } catch (e) { console.error('Error in renderToPipeableStream:', e)