From 0f1b230469795418357cdff4944c38c2975caead Mon Sep 17 00:00:00 2001 From: Pooya Parsa Date: Thu, 10 Nov 2022 12:36:44 +0100 Subject: [PATCH 1/2] fix(nuxt): preserve render errors --- packages/nuxt/src/core/runtime/nitro/renderer.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/nuxt/src/core/runtime/nitro/renderer.ts b/packages/nuxt/src/core/runtime/nitro/renderer.ts index 51a6a12ce90..049dfdfcfa4 100644 --- a/packages/nuxt/src/core/runtime/nitro/renderer.ts +++ b/packages/nuxt/src/core/runtime/nitro/renderer.ts @@ -176,13 +176,11 @@ export default defineRenderHandler(async (event) => { // Use explicitly thrown error in preference to subsequent rendering errors throw ssrContext.payload?.error || err } + throw err }) await ssrContext.nuxt?.hooks.callHook('app:rendered', { ssrContext }) // Handle errors - if (!_rendered) { - return undefined! - } if (ssrContext.payload?.error && !ssrError) { throw ssrContext.payload.error } From 55607de2b18479da063b6ba79a8ec63cb5c91584 Mon Sep 17 00:00:00 2001 From: Pooya Parsa Date: Thu, 10 Nov 2022 12:42:29 +0100 Subject: [PATCH 2/2] simplify logic --- packages/nuxt/src/core/runtime/nitro/renderer.ts | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/packages/nuxt/src/core/runtime/nitro/renderer.ts b/packages/nuxt/src/core/runtime/nitro/renderer.ts index 049dfdfcfa4..0d4b2277a36 100644 --- a/packages/nuxt/src/core/runtime/nitro/renderer.ts +++ b/packages/nuxt/src/core/runtime/nitro/renderer.ts @@ -171,12 +171,9 @@ export default defineRenderHandler(async (event) => { writeEarlyHints(event, link) } - const _rendered = await renderer.renderToString(ssrContext).catch((err) => { - if (!ssrError) { - // Use explicitly thrown error in preference to subsequent rendering errors - throw ssrContext.payload?.error || err - } - throw err + const _rendered = await renderer.renderToString(ssrContext).catch((error) => { + // Use explicitly thrown error in preference to subsequent rendering errors + throw (!ssrError && ssrContext.payload?.error) || error }) await ssrContext.nuxt?.hooks.callHook('app:rendered', { ssrContext })