Skip to content
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

Reword PPR caught bail out to avoid "postpone" terminology #58223

Merged
merged 3 commits into from
Nov 8, 2023

Conversation

sebmarkbage
Copy link
Contributor

@sebmarkbage sebmarkbage commented Nov 8, 2023

The "postpone" terminology is internal to React and can be used for more things than just this. It's also a mechanism we may or may not rely on.

ijjk
ijjk previously approved these changes Nov 8, 2023
@ijjk
Copy link
Member

ijjk commented Nov 8, 2023

Failing test suites

Commit: 7361bef

pnpm test-start test/e2e/app-dir/ppr-errors/ppr-errors.test.ts

  • ppr build errors > when a postpone call is caught and logged it should > should include a message telling why
Expand output

● ppr build errors › when a postpone call is caught and logged it should › should include a message telling why

expect(received).toContain(expected) // indexOf

Expected substring: "Logged error: This page needs to bail out of prerendering at this point because it used Page couldn't be rendered statically because it used `cookies`."
Received string:    "   ▲ Next.js 14.0.2-canary.23
   - Experiments (use at your own risk):
     · ppr·
   Creating an optimized production build ...
 ✓ Compiled successfully
   Linting and checking validity of types ...
   Collecting page data ...
   Generating static pages (0/10) ...
Logged error: This page needs to bail out of prerendering at this point because it used cookies. React throws this special object to indicate where. It should not be caught by your own try/catch. Learn more: https://nextjs.org/docs/messages/ppr-caught-error
Logged error: This page needs to bail out of prerendering at this point because it used cookies. React throws this special object to indicate where. It should not be caught by your own try/catch. Learn more: https://nextjs.org/docs/messages/ppr-caught-error·
   Generating static pages (2/10)···
   Generating static pages (4/10)···
   Generating static pages (7/10)···
 ✓ Generating static pages (10/10)·
"

  89 |   describe('when a postpone call is caught and logged it should', () => {
  90 |     it('should include a message telling why', async () => {
> 91 |       expect(stdout).toContain(
     |                      ^
  92 |         "Logged error: This page needs to bail out of prerendering at this point because it used Page couldn't be rendered statically because it used `cookies`."
  93 |       )
  94 |     })

  at Object.toContain (e2e/app-dir/ppr-errors/ppr-errors.test.ts:91:22)

Read more about building and testing Next.js in contributing.md.

@ijjk
Copy link
Member

ijjk commented Nov 8, 2023

Stats from current PR

Default Build (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary sebmarkbage/next.js avoidpostponeterminology Change
buildDuration 10.8s 10.7s N/A
buildDurationCached 6.1s 6s N/A
nodeModulesSize 199 MB 199 MB ⚠️ +3.8 kB
nextStartRea..uration (ms) 396ms 403ms N/A
Client Bundles (main, webpack)
vercel/next.js canary sebmarkbage/next.js avoidpostponeterminology Change
199-HASH.js gzip 29.2 kB 29.2 kB N/A
3f784ff6-HASH.js gzip 53.3 kB 53.3 kB N/A
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 238 B N/A
main-HASH.js gzip 31.7 kB 31.8 kB N/A
webpack-HASH.js gzip 1.7 kB 1.7 kB
Overall change 46.9 kB 46.9 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary sebmarkbage/next.js avoidpostponeterminology Change
polyfills-HASH.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary sebmarkbage/next.js avoidpostponeterminology 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 504 B 506 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.3 kB 4.3 kB N/A
index-HASH.js gzip 256 B 256 B
link-HASH.js gzip 2.65 kB 2.65 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 sebmarkbage/next.js avoidpostponeterminology Change
_buildManifest.js gzip 483 B 484 B N/A
Overall change 0 B 0 B
Rendered Page Sizes
vercel/next.js canary sebmarkbage/next.js avoidpostponeterminology Change
index.html gzip 529 B 529 B
link.html gzip 542 B 540 B N/A
withRouter.html gzip 524 B 523 B N/A
Overall change 529 B 529 B
Edge SSR bundle Size Overall increase ⚠️
vercel/next.js canary sebmarkbage/next.js avoidpostponeterminology Change
edge-ssr.js gzip 92.5 kB 92.5 kB N/A
page.js gzip 145 kB 145 kB ⚠️ +117 B
Overall change 145 kB 145 kB ⚠️ +117 B
Middleware size
vercel/next.js canary sebmarkbage/next.js avoidpostponeterminology Change
middleware-b..fest.js gzip 626 B 625 B N/A
middleware-r..fest.js gzip 150 B 151 B N/A
middleware.js gzip 24.8 kB 24.8 kB
edge-runtime..pack.js gzip 1.92 kB 1.92 kB
Overall change 26.7 kB 26.7 kB
Next Runtimes
vercel/next.js canary sebmarkbage/next.js avoidpostponeterminology Change
app-page-exp...dev.js gzip 167 kB 167 kB N/A
app-page-exp..prod.js gzip 93.1 kB 93.1 kB N/A
app-page-tur..prod.js gzip 93.8 kB 93.9 kB N/A
app-page-tur..prod.js gzip 88.5 kB 88.5 kB N/A
app-page.run...dev.js gzip 137 kB 137 kB N/A
app-page.run..prod.js gzip 87.8 kB 87.9 kB N/A
app-route-ex...dev.js gzip 23.7 kB 23.7 kB
app-route-ex..prod.js gzip 16.4 kB 16.4 kB N/A
app-route-tu..prod.js gzip 16.4 kB 16.4 kB N/A
app-route-tu..prod.js gzip 16 kB 16 kB N/A
app-route.ru...dev.js gzip 23.2 kB 23.2 kB N/A
app-route.ru..prod.js gzip 16 kB 16 kB N/A
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.8 kB 21.8 kB
pages.runtim...dev.js gzip 22.5 kB 22.5 kB
pages.runtim..prod.js gzip 21.8 kB 21.8 kB
server.runti..prod.js gzip 48.8 kB 48.8 kB
Overall change 167 kB 167 kB
Diff details
Diff for page.js

Diff too large to display

Diff for 199-HASH.js

Diff too large to display

Diff for app-page-exp..ntime.dev.js

Diff too large to display

Diff for app-page-exp..time.prod.js

Diff too large to display

Diff for app-page-tur..time.prod.js

Diff too large to display

Diff for app-page-tur..time.prod.js

Diff too large to display

Diff for app-page.runtime.dev.js

Diff too large to display

Diff for app-page.runtime.prod.js

Diff too large to display

Diff for app-route-ex..ntime.dev.js

Diff too large to display

Diff for app-route-ex..time.prod.js

Diff too large to display

Diff for app-route-tu..time.prod.js

Diff too large to display

Diff for app-route-tu..time.prod.js

Diff too large to display

Diff for app-route.runtime.dev.js

Diff too large to display

Diff for app-route.ru..time.prod.js

Diff too large to display

Commit: 7361bef

ztanner
ztanner previously approved these changes Nov 8, 2023
errors/ppr-caught-error.mdx Outdated Show resolved Hide resolved
Co-authored-by: Zack Tanner <zacktanner@gmail.com>
@sebmarkbage sebmarkbage merged commit 2f68e62 into vercel:canary Nov 8, 2023
12 of 17 checks passed
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Nov 23, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants