Comparison
Error boundaryvsUnhandled rejection
Error boundary
one component threw and you showed a fallback for that section instead of a blank white page.
A component that catches errors thrown during rendering below it and shows a fallback instead of unmounting the whole tree. It is the only thing standing between a null-dereference in a widget and an empty document. It does not catch errors in event handlers, in async callbacks or on the server, which is why teams that add boundaries still get blank pages from the paths boundaries cannot see.
Full entry →Unhandled rejection
the request failed and nothing happened at all — no error boundary, no message, just a line in the console.
A promise that rejects with no rejection handler attached, which fires a window-level event rather than throwing where you can catch it. It is how an async failure disappears: `try/catch` around a call that was never awaited catches nothing, and error boundaries only see errors thrown during render. Reporting the global event is the minimum, because otherwise these never reach your error tracking at all.
Full entry →