Skip to content

Commit 81e4faa

Browse files
maruthangclydin
authored andcommitted
fix(@angular/build): preserve error stack traces during prerendering
Reorder the nullish coalescing chain from `err.message ?? err.stack` to `err.stack ?? err.message` so that the full stack trace is preserved when available. Since `err.message` is almost always defined on Error objects, the previous order meant `err.stack` was never reached. Also add `assertIsError(err)` and consistent `err.code` inclusion across all three error-handling locations for improved type safety and debugging. Fixes #32503
1 parent e558117 commit 81e4faa

File tree

1 file changed

+8
-3
lines changed
  • packages/angular/build/src/utils/server-rendering

1 file changed

+8
-3
lines changed

packages/angular/build/src/utils/server-rendering/prerender.ts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -116,8 +116,12 @@ export async function prerenderPages(
116116
sourcemap,
117117
outputMode,
118118
).catch((err) => {
119+
assertIsError(err);
120+
119121
return {
120-
errors: [`An error occurred while extracting routes.\n\n${err.message ?? err.stack ?? err}`],
122+
errors: [
123+
`An error occurred while extracting routes.\n\n${err.stack ?? err.message ?? err.code ?? err}`,
124+
],
121125
serializedRouteTree: [],
122126
appShellRoute: undefined,
123127
};
@@ -265,8 +269,9 @@ async function renderPages(
265269
}
266270
})
267271
.catch((err) => {
272+
assertIsError(err);
268273
errors.push(
269-
`An error occurred while prerendering route '${route}'.\n\n${err.message ?? err.stack ?? err.code ?? err}`,
274+
`An error occurred while prerendering route '${route}'.\n\n${err.stack ?? err.message ?? err.code ?? err}`,
270275
);
271276
void renderWorker.destroy();
272277
});
@@ -371,7 +376,7 @@ async function getAllRoutes(
371376

372377
return {
373378
errors: [
374-
`An error occurred while extracting routes.\n\n${err.message ?? err.stack ?? err.code ?? err}`,
379+
`An error occurred while extracting routes.\n\n${err.stack ?? err.message ?? err.code ?? err}`,
375380
],
376381
serializedRouteTree: [],
377382
};

0 commit comments

Comments
 (0)