-
Notifications
You must be signed in to change notification settings - Fork 27.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ppr: fail static generation if postponed & missing postpone data #57786
Conversation
Stats from current PRDefault Build (Increase detected
|
vercel/next.js canary | vercel/next.js ppr/logging-2 | Change | |
---|---|---|---|
buildDuration | 10.3s | 10.4s | |
buildDurationCached | 6.1s | 6.1s | N/A |
nodeModulesSize | 175 MB | 175 MB | |
nextStartRea..uration (ms) | 402ms | 403ms | N/A |
Client Bundles (main, webpack)
vercel/next.js canary | vercel/next.js ppr/logging-2 | Change | |
---|---|---|---|
199-HASH.js gzip | 30 kB | 30 kB | N/A |
3f784ff6-HASH.js gzip | 53.2 kB | 53.2 kB | ✓ |
494.HASH.js gzip | 182 B | 182 B | ✓ |
framework-HASH.js gzip | 45.5 kB | 45.5 kB | ✓ |
main-app-HASH.js gzip | 254 B | 252 B | N/A |
main-HASH.js gzip | 33.1 kB | 33.1 kB | N/A |
webpack-HASH.js gzip | 1.75 kB | 1.75 kB | N/A |
Overall change | 98.9 kB | 98.9 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | vercel/next.js ppr/logging-2 | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | vercel/next.js ppr/logging-2 | Change | |
---|---|---|---|
_app-HASH.js gzip | 205 B | 205 B | ✓ |
_error-HASH.js gzip | 182 B | 181 B | N/A |
amp-HASH.js gzip | 505 B | 507 B | N/A |
css-HASH.js gzip | 322 B | 323 B | N/A |
dynamic-HASH.js gzip | 2.59 kB | 2.59 kB | N/A |
edge-ssr-HASH.js gzip | 258 B | 259 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.38 kB | 4.38 kB | N/A |
index-HASH.js gzip | 256 B | 256 B | ✓ |
link-HASH.js gzip | 2.67 kB | 2.67 kB | N/A |
routerDirect..HASH.js gzip | 318 B | 318 B | ✓ |
script-HASH.js gzip | 384 B | 383 B | N/A |
withRouter-HASH.js gzip | 319 B | 320 B | N/A |
1afbb74e6ecf..834.css gzip | 106 B | 106 B | ✓ |
Overall change | 885 B | 885 B | ✓ |
Client Build Manifests
vercel/next.js canary | vercel/next.js ppr/logging-2 | Change | |
---|---|---|---|
_buildManifest.js gzip | 484 B | 484 B | ✓ |
Overall change | 484 B | 484 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | vercel/next.js ppr/logging-2 | Change | |
---|---|---|---|
index.html gzip | 528 B | 527 B | N/A |
link.html gzip | 542 B | 544 B | N/A |
withRouter.html gzip | 525 B | 522 B | N/A |
Overall change | 0 B | 0 B | ✓ |
Edge SSR bundle Size Overall increase ⚠️
vercel/next.js canary | vercel/next.js ppr/logging-2 | Change | |
---|---|---|---|
edge-ssr.js gzip | 96.1 kB | 96.2 kB | N/A |
page.js gzip | 140 kB | 140 kB | |
Overall change | 140 kB | 140 kB |
Middleware size
vercel/next.js canary | vercel/next.js ppr/logging-2 | Change | |
---|---|---|---|
middleware-b..fest.js gzip | 626 B | 627 B | N/A |
middleware-r..fest.js gzip | 148 B | 151 B | N/A |
middleware.js gzip | 24.8 kB | 24.8 kB | N/A |
edge-runtime..pack.js gzip | 1.92 kB | 1.92 kB | ✓ |
Overall change | 1.92 kB | 1.92 kB | ✓ |
Diff details
Diff for page.js
Diff too large to display
Diff for edge-ssr.js
Diff too large to display
Diff for 199-HASH.js
Diff too large to display
Tests Passed |
'The following error was thrown during build, and may help identify the source of the issue:' | ||
) | ||
|
||
error(capturedErrors[0]) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
are we not printing all errors?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This mirrors the existing behavior for regular prerender failures below (ref) -- my reasoning was that we'll get duplicated errors from the serverComponentsRenderer
and flightDataRenderer
. We could add additional branching for PPR specifically to dedupe, but was thinking it's not worth the additional complexity, since these errors will still be surfaced by subsequent builds.
When postpone is caught by user code, this will cause PPR not to properly prerender the static parts and thus we need to fail the build. This also adds some messaging about how to fix the error.
Prior to this change, catching code that would normally trigger
postpone
would silently fail, but the build outputs would be incorrect as there's no postpone data available.Relands #57477 with additional tests & fixes