No description
Find a file
Jiachi Liu 4056994304
Recover not found errors from flight data to render with proper boundary (#53703)
### What?

We change the not-found rendering strategy to the origin one which recovers the not found error from the flight data, and hit the error boundary to display the closet not found component.

For parallel `@slot` we shouldn't pass down the not-found boundary, the boundary is only for `@children`.

### Why?

We're having a lot of not-found matching issues that manually searching for not found and layout won't be accurate as we have various scenarios like `(group)` routes, dynamic routes, etc.

### How?

Only render html with empty body so that the error can recover from flight and render the proper not-found component during hydration.

One change for metadata is that we need to get the "not-found" metadata in the initial render, so we'll catch the not-found error once there first and start render the "not-found" metadata and put it in the flight data. Then when it recovers it's still preserved.

Fixes #53694
2023-08-12 08:41:47 +00:00
.cargo Revert "Next Build Turbo POC (#49942)" (#51538) 2023-06-19 21:54:04 -07:00
.config Update Next.js code owners (#51319) 2023-06-14 20:07:32 -07:00
.devcontainer re-enable next-dev-tests (#47087) 2023-03-14 16:05:19 +01:00
.github [chore] Upgrade playwright to 1.35.1 (#53875) 2023-08-11 23:25:01 +00:00
.husky Replace pre-commit with husky (#38350) 2022-07-06 11:14:16 -05:00
.vscode Revert "Implement new forking technique for vendored packages. (#51083)" (#53640) 2023-08-06 13:00:12 -07:00
bench Replace var with const (#49379) 2023-05-09 10:25:39 +02:00
contributing Include instructions for bun package manager (#53590) 2023-08-10 23:44:20 +00:00
docs Docs: fix pnpm command for saving dev deps (#53937) (#53938) 2023-08-12 07:52:46 +00:00
errors Include instructions for bun package manager (#53590) 2023-08-10 23:44:20 +00:00
examples feat(image): DataURL placeholder support for <Image /> (#53442) 2023-08-11 23:45:20 +00:00
packages Recover not found errors from flight data to render with proper boundary (#53703) 2023-08-12 08:41:47 +00:00
scripts Update env variable for fonts data workflow (#53701) 2023-08-07 22:07:50 +00:00
test Recover not found errors from flight data to render with proper boundary (#53703) 2023-08-12 08:41:47 +00:00
.alexignore Integrate next-* crates from Turbopack (#47019) 2023-03-13 14:33:17 +01:00
.alexrc docs: Add "special" to the Alex allowlist (#48021) 2023-04-06 16:32:06 +02:00
.eslintignore Revert "Implement new forking technique for vendored packages. (#51083)" (#53640) 2023-08-06 13:00:12 -07:00
.eslintrc.json update eslint config (#53637) 2023-08-07 09:41:14 +00:00
.gitattributes chore: make next/src/build files indexable on github (#51647) 2023-06-22 11:32:42 +00:00
.gitignore Revert "Implement new forking technique for vendored packages. (#51083)" (#53640) 2023-08-06 13:00:12 -07:00
.npmrc fix: npm publish provenance permissions (#48757) 2023-04-24 14:08:55 +00:00
.prettierignore chore: add GH action to notify about pending PRs (#53541) 2023-08-03 21:40:28 +00:00
.prettierignore_staged Revert "Implement new forking technique for vendored packages. (#51083)" (#53640) 2023-08-06 13:00:12 -07:00
.prettierrc.json Prettier trailingComma default value to es5 since 2.0 (#14391) 2020-06-22 13:25:24 +02:00
.rustfmt.toml build(cargo): move workspaces manifest to top level (#48198) 2023-04-19 18:38:36 +02:00
azure-pipelines.yml [chore] Upgrade playwright to 1.35.1 (#53875) 2023-08-11 23:25:01 +00:00
Cargo.lock Update swc_core to v0.79.55 (#53831) 2023-08-11 22:38:44 +00:00
Cargo.toml Update swc_core to v0.79.55 (#53831) 2023-08-11 22:38:44 +00:00
CODE_OF_CONDUCT.md updated code of conduct to v2.1 (#34208) 2022-02-10 18:11:42 -06:00
contributing.md chore: improve repo templates (#46629) 2023-03-01 09:25:51 -08:00
jest.config.js test(turbo): allow to run test with --experimental-turbo (#53396) 2023-08-09 05:48:54 +00:00
jest.replay.config.js Add Replay integration for dev e2e tests (#40955) 2022-09-29 14:45:10 -07:00
lerna.json v13.4.14-canary.2 2023-08-11 12:02:35 +00:00
license.md Update license year (#44403) 2023-01-01 11:12:49 +01:00
lint-staged.config.js Run dev tests against default CNA templates (#45211) 2023-01-24 11:01:03 -08:00
package.json [chore] Upgrade playwright to 1.35.1 (#53875) 2023-08-11 23:25:01 +00:00
plopfile.js Opt-in to dynamic rendering when reading searchParams (#46205) 2023-03-16 21:46:35 +01:00
pnpm-lock.yaml [chore] Upgrade playwright to 1.35.1 (#53875) 2023-08-11 23:25:01 +00:00
pnpm-workspace.yaml Integrate next-* crates from Turbopack (#47019) 2023-03-13 14:33:17 +01:00
readme.md Monorepo (#5341) 2018-10-01 01:02:10 +02:00
release.js Fix labels for release sections 2021-11-21 13:11:54 +01:00
run-tests.js fix Next.rs API (#53456) 2023-08-02 14:31:52 +02:00
rust-toolchain Turbopack: Vc<T> and Turbo Engine type system improvements (#51792) 2023-07-16 13:56:20 +00:00
test-file.txt Add additional file serving tests (#12479) 2020-05-04 11:58:19 -05:00
tsconfig-tsec.json Integrate tsec into the linting process (#33746) 2022-02-24 16:59:18 -08:00
tsconfig.json type check tests (and convert next-test-utils.js to ts) (#51071) 2023-06-23 17:42:50 +00:00
tsec-exemptions.json Move core files to src folder and move JS files to TypeScript (#44405) 2023-01-03 10:05:50 +01:00
turbo.json Fix build-native turbo config (#53380) 2023-07-31 14:00:30 +00:00
UPGRADING.md Move upgrading guide to /docs (#10727) 2020-02-28 23:46:18 +01:00
vercel.json Silence GH Comments for Preview URLs (#18766) 2020-11-03 21:59:47 +00:00

Next.js

Getting Started

Visit https://nextjs.org/learn to get started with Next.js.

Documentation

Visit https://nextjs.org/docs to view the full documentation.

Who is using Next.js?

Next.js is used by the world's leading companies. Check out the Next.js Showcase to learn more.

Community

The Next.js community can be found on GitHub Discussions, where you can ask questions, voice ideas, and share your projects.

To chat with other community members you can join the Next.js Discord.

Our Code of Conduct applies to all Next.js community channels.

Contributing

Please see our contributing.md.

Good First Issues

We have a list of good first issues that contain bugs that have a relatively limited scope. This is a great place to get started, gain experience, and get familiar with our contribution process.

Authors

Security

If you believe you have found a security vulnerability in Next.js, we encourage you to responsibly disclose this and not open a public issue. We will investigate all legitimate reports. Email security@vercel.com to disclose any security vulnerabilities.

https://vercel.com/security