Error handling bugfix: pass #1

This commit is contained in:
2026-10-02 07:04:22 +01:00
parent 39a5e91eeb
commit d8ea4f8e02
53 changed files with 1179 additions and 410 deletions
+13 -1
View File
@@ -79,11 +79,17 @@ export default async function genWebHTML({ component: Main, pageProps, bundledMa
console.info = () => { };
console.debug = () => { };
let htmlBody;
let render_error;
let has_render_error = false;
try {
const stream = await renderToReadableStream(final_component, {
onError(error) {
if (error.message.includes('unique "key" prop'))
if (error?.message?.includes('unique "key" prop'))
return;
if (!has_render_error) {
has_render_error = true;
render_error = error;
}
originalConsole.error(error);
},
});
@@ -92,6 +98,12 @@ export default async function genWebHTML({ component: Main, pageProps, bundledMa
finally {
Object.assign(console, originalConsole);
}
// A component crash during SSR must surface as a proper error (handled
// upstream as a 500 page). React only reports these to `onError`; without
// rethrowing, the user gets a 200 with broken/blank markup.
if (has_render_error) {
throw render_error;
}
html += htmlBody;
return html;
}