@samitouri / QOS-React-1 / commits / 583eb6770d

Emit Server Error Prefix in the .stack Property Too (#28738)

Follow up to #28684. V8 includes the message in the stack and printed errors include just the stack property which is assumed to contain the message. Without this, the prefix doesn't get printed in the console. <img width="578" alt="Screenshot 2024-04-03 at 6 32 04 PM" src="https://github.com/facebook/react/assets/63648/d98a2db4-6ebc-4805-b669-59f449dfd21f"> A possible alternative would be to use a nested error with a `cause` like #28736 but that would need some more involved serializing since this prefix is coming from the server. Perhaps as a separate attribute.

Sebastian Markbåge committed Apr 3, 2024 at 21:52 UTC 583eb6770d56e9793d3660bd9c6782fdebc93729
1 file changed +1 -1
packages/react-server/src/ReactFizzServer.js
+1 -1
@@ -842,7 +842,7 @@ function encodeErrorForBoundary(
842 ? 'Switched to client rendering because the server rendering aborted due to:\n\n'
843 : 'Switched to client rendering because the server rendering errored:\n\n';
844 boundary.errorMessage = prefix + message;
845 - boundary.errorStack = stack;
845 + boundary.errorStack = stack !== null ? prefix + stack : null;
846 boundary.errorComponentStack = thrownInfo.componentStack;
847 }
848 }