Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

fix interception routes with dynamic segments #59273

Merged

Conversation

ztanner
Copy link
Member

@ztanner ztanner commented Dec 5, 2023

What?

Using an interception marker next to a dynamic segment does not behave properly when deployed to Vercel

Why?

The named route regex that gets created is not accounting for the interception marker, which is causing the non-intercepted route to match the intercepted serverless function.

How?

This factors in the interception marker when building the named route regex so that the non-intercepted route regex properly matches when loading the non-intercepted page.

Deployment verified here: https://test-intercept-mu.vercel.app/

Closes NEXT-1786
Fixes #54650

@ztanner
Copy link
Member Author

ztanner commented Dec 5, 2023

Current dependencies on/for this PR:

This stack of pull requests is managed by Graphite.

@ijjk
Copy link
Member

ijjk commented Dec 5, 2023

Stats from current PR

Default Build
General Overall increase ⚠️
vercel/next.js canary vercel/next.js 12-04-fix_interception_routes_with_dynamic_segments Change
buildDuration 10.6s 10.7s N/A
buildDurationCached 5.9s 6.7s ⚠️ +778ms
nodeModulesSize 199 MB 199 MB ⚠️ +9.12 kB
nextStartRea..uration (ms) 426ms 419ms N/A
Client Bundles (main, webpack)
vercel/next.js canary vercel/next.js 12-04-fix_interception_routes_with_dynamic_segments Change
199-HASH.js gzip 30.6 kB 30.6 kB N/A
3f784ff6-HASH.js gzip 53.3 kB 53.3 kB
494.HASH.js gzip 180 B 181 B N/A
framework-HASH.js gzip 45.2 kB 45.2 kB
main-app-HASH.js gzip 241 B 239 B N/A
main-HASH.js gzip 31.7 kB 31.7 kB N/A
webpack-HASH.js gzip 1.7 kB 1.7 kB
Overall change 100 kB 100 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary vercel/next.js 12-04-fix_interception_routes_with_dynamic_segments Change
polyfills-HASH.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary vercel/next.js 12-04-fix_interception_routes_with_dynamic_segments Change
_app-HASH.js gzip 194 B 195 B N/A
_error-HASH.js gzip 182 B 181 B N/A
amp-HASH.js gzip 501 B 503 B N/A
css-HASH.js gzip 322 B 323 B N/A
dynamic-HASH.js gzip 2.5 kB 2.5 kB
edge-ssr-HASH.js gzip 253 B 255 B N/A
head-HASH.js gzip 348 B 347 B N/A
hooks-HASH.js gzip 369 B 368 B N/A
image-HASH.js gzip 4.27 kB 4.27 kB N/A
index-HASH.js gzip 256 B 256 B
link-HASH.js gzip 2.61 kB 2.6 kB N/A
routerDirect..HASH.js gzip 311 B 311 B
script-HASH.js gzip 384 B 383 B N/A
withRouter-HASH.js gzip 307 B 308 B N/A
1afbb74e6ecf..834.css gzip 106 B 106 B
Overall change 3.17 kB 3.17 kB
Client Build Manifests
vercel/next.js canary vercel/next.js 12-04-fix_interception_routes_with_dynamic_segments Change
_buildManifest.js gzip 484 B 483 B N/A
Overall change 0 B 0 B
Rendered Page Sizes
vercel/next.js canary vercel/next.js 12-04-fix_interception_routes_with_dynamic_segments Change
index.html gzip 527 B 527 B
link.html gzip 537 B 541 B N/A
withRouter.html gzip 523 B 521 B N/A
Overall change 527 B 527 B
Edge SSR bundle Size
vercel/next.js canary vercel/next.js 12-04-fix_interception_routes_with_dynamic_segments Change
edge-ssr.js gzip 93.7 kB 93.7 kB N/A
page.js gzip 146 kB 146 kB N/A
Overall change 0 B 0 B
Middleware size
vercel/next.js canary vercel/next.js 12-04-fix_interception_routes_with_dynamic_segments Change
middleware-b..fest.js gzip 625 B 624 B N/A
middleware-r..fest.js gzip 150 B 151 B N/A
middleware.js gzip 37.5 kB 37.5 kB N/A
edge-runtime..pack.js gzip 1.92 kB 1.92 kB
Overall change 1.92 kB 1.92 kB
Next Runtimes
vercel/next.js canary vercel/next.js 12-04-fix_interception_routes_with_dynamic_segments Change
app-page-exp...dev.js gzip 168 kB 168 kB
app-page-exp..prod.js gzip 93.8 kB 93.8 kB
app-page-tur..prod.js gzip 94.5 kB 94.5 kB
app-page-tur..prod.js gzip 89.1 kB 89.1 kB
app-page.run...dev.js gzip 138 kB 138 kB
app-page.run..prod.js gzip 88.4 kB 88.4 kB
app-route-ex...dev.js gzip 24.2 kB 24.2 kB
app-route-ex..prod.js gzip 16.8 kB 16.8 kB
app-route-tu..prod.js gzip 16.9 kB 16.9 kB
app-route-tu..prod.js gzip 16.4 kB 16.4 kB
app-route.ru...dev.js gzip 23.6 kB 23.6 kB
app-route.ru..prod.js gzip 16.4 kB 16.4 kB
pages-api-tu..prod.js gzip 9.37 kB 9.37 kB
pages-api.ru...dev.js gzip 9.64 kB 9.64 kB
pages-api.ru..prod.js gzip 9.37 kB 9.37 kB
pages-turbo...prod.js gzip 21.9 kB 21.9 kB
pages.runtim...dev.js gzip 22.6 kB 22.6 kB
pages.runtim..prod.js gzip 21.9 kB 21.9 kB
server.runti..prod.js gzip 49.3 kB 49.4 kB N/A
Overall change 880 kB 880 kB
Diff details
Diff for page.js

Diff too large to display

Diff for edge-ssr.js

Diff too large to display

Diff for main-HASH.js

Diff too large to display

Diff for server.runtime.prod.js

Diff too large to display

Commit: 46fb651

@ztanner ztanner marked this pull request as ready for review December 5, 2023 14:49
@ztanner ztanner merged commit 78a2eb0 into canary Dec 5, 2023
@ztanner ztanner deleted the 12-04-fix_interception_routes_with_dynamic_segments branch December 5, 2023 16:47
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Dec 20, 2023
# for free to subscribe to this conversation on GitHub. Already have an account? #.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Intercepting routes is broken (404) for nested dynamic routes on Vercel
3 participants