What's Changed
- feat: support React 19 by @serhalp in #39306
- feat: support Node.js 24 by @serhalp in #39380 and #39398
- fix(deps): bump
body-parserto resolveqsvulnerability warning by @serhalp in #39396 - chore(docs,starters): remove misc. outdated, invalid, or misleading instructions by @serhalp in #39363
React 19
Note
🔐 As of January 26 2026, none of the React 19 security vulnerabilities affect Gatsby.
🚀 React 19 is here!
React 19 is now officially supported by Gatsby and all gatsby- packages maintained by the Gatsby team.
This is not a breaking change. You can safely upgrade to this release while staying on React 18.
All packages' peer dependencies on react and react-dom have been extended from ^18.0.0 to ^18.0.0 || ^19.0.0.
All existing stable Gatsby functionality is intended to now work with React 19.
PR: #39306
Upgrade Guide
Warning
Community plugins may not have been updated yet to support React 19, so please check their repository for the current status. All plugins managed by the Gatsby team (in the gatsbyjs/gatsby repository) have been updated.
To upgrade to React 19, first upgrade gatsby and all your dependencies that start with gatsby- to the latest version. (Check out this guide if you need help with that.)
Tip
If you use npm 7 or higher you’ll want to use the --legacy-peer-deps option. For example, if you use gatsby and gatsby-plugin-postcss:
npm install --legacy-peer-deps gatsby@latest gatsby-plugin-postcss@latestThen, follow the React 19 upgrade guide. No other changes are required.
Please note:
- Some new React 19 features may not be available yet via Gatsby.
- Notably, the new document metadata hoisting feature is disabled in Gatsby, as it conflicts with the existing Gatsby Head API
- Gatsby Partial Hydration, an experimental feature for three years now, is known to be incompatible with React 19 at this time. If you rely on this feature, do not upgrade to React 19.
New features
Gatsby now supports React 19's new root error callbacks.
Users can export onCaughtError and onUncaughtError from their gatsby-browser.js to handle errors caught by error boundaries and uncaught errors respectively:
// gatsby-browser.js
export const onCaughtError = ({ error, errorInfo }) => {
// e.g. send to an error tracking service
myErrorTracker.reportError(error, { extra: errorInfo })
}
export const onUncaughtError = ({ error, errorInfo }) => {
// e.g. send to an error tracking service
myErrorTracker.captureException(error, { extra: errorInfo })
}In development, these errors also appear in Gatsby's Fast Refresh error overlay. These callbacks are only invoked in React 19.
Node.js 24
Node.js 24 is now officially supported by Gatsby.
Notable bugfixes & improvements
gatsby,gatsby-source-drupal:- chore: remove misc. outdated, invalid, or misleading contributor instructions by @serhalp in #39363
Full Changelog: https://github.com/gatsbyjs/gatsby/compare/gatsby@5.15.0...gatsby@5.16.0