error.js
API reference for the error.js special file.
An error file allows you to handle unexpected runtime errors and display fallback UI.
error.js
wraps a route segment and its nested children in a React Error Boundary. When an error throws within the boundary, the error
component shows as the fallback UI.
Good to know:
- The React DevTools allow you to toggle error boundaries to test error states.
- If you want errors to bubble up to the parent error boundary, you can
throw
when rendering theerror
component.
Reference
Props
error
An instance of an Error
object forwarded to the error.js
Client Component.
Good to know: During development, the Error
object forwarded to the client will be serialized and include the message
of the original error for easier debugging. However, this behavior is different in production to avoid leaking potentially sensitive details included in the error to the client.
error.message
- Errors forwarded from Client Components show the original
Error
message. - Errors forwarded from Server Components show a generic message with an identifier. This is to prevent leaking sensitive details. You can use the identifier, under
errors.digest
, to match the corresponding server-side logs.
error.digest
An automatically generated hash of the error thrown. It can be used to match the corresponding error in server-side logs.
reset
The cause of an error can sometimes be temporary. In these cases, trying again might resolve the issue.
An error component can use the reset()
function to prompt the user to attempt to recover from the error. When executed, the function will try to re-render the error boundary's contents. If successful, the fallback error component is replaced with the result of the re-render.
Examples
Global Error
While less common, you can handle errors in the root layout or template using global-error.js
, located in the root app directory, even when leveraging internationalization. Global error UI must define its own <html>
and <body>
tags. This file replaces the root layout or template when active.
Good to know: global-error.js
is only enabled in production. In development, our error overlay will show instead.
Version History
Version | Changes |
---|---|
v13.1.0 | global-error introduced. |
v13.0.0 | error introduced. |