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

Ensure unknown static paths 404 for data request #16401

Merged
merged 3 commits into from
Aug 20, 2020

Conversation

Timer
Copy link
Member

@Timer Timer commented Aug 20, 2020

We were accidentally allowing data requests to be rendered unconditionally. Instead, we should also check them against the staticPaths result and 404 when appropriate.


Fixes #15383

@ijjk
Copy link
Member

ijjk commented Aug 20, 2020

Stats from current PR

Default Server Mode (Decrease detected ✓)
General Overall increase ⚠️
vercel/next.js canary Timer/next.js correctly-404-data-request Change
buildDuration 11.5s 12s ⚠️ +483ms
nodeModulesSize 57.4 MB 57.4 MB ⚠️ +72 B
Page Load Tests Overall decrease ⚠️
vercel/next.js canary Timer/next.js correctly-404-data-request Change
/ failed reqs 0 0
/ total time (seconds) 2.223 2.37 ⚠️ +0.15
/ avg req/sec 1124.36 1055.06 ⚠️ -69.3
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.38 1.372 -0.01
/error-in-render avg req/sec 1810.98 1821.59 +10.61
Client Bundles (main, webpack, commons)
vercel/next.js canary Timer/next.js correctly-404-data-request Change
677f882d2ed8..4e55.js gzip 10.2 kB 10.2 kB
framework.HASH.js gzip 39 kB 39 kB
main-44ad070..7dbf.js gzip 7.2 kB 7.2 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 57.2 kB 57.2 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary Timer/next.js correctly-404-data-request Change
677f882d2ed8..dule.js gzip 6.11 kB 6.11 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-6707cd9..dule.js gzip 6.21 kB 6.21 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 52 kB 52 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary Timer/next.js correctly-404-data-request Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary Timer/next.js correctly-404-data-request Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-1464c..a26f.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-000f151..65d4.js gzip 1.29 kB 1.29 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.69 kB 7.69 kB
Client Pages Modern
vercel/next.js canary Timer/next.js correctly-404-data-request Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-e550f..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-4cfda7a..dule.js gzip 1.26 kB 1.26 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.35 kB 5.35 kB
Client Build Manifests
vercel/next.js canary Timer/next.js correctly-404-data-request Change
_buildManifest.js gzip 322 B 322 B
_buildManife..dule.js gzip 329 B 329 B
Overall change 651 B 651 B
Rendered Page Sizes
vercel/next.js canary Timer/next.js correctly-404-data-request Change
index.html gzip 947 B 947 B
link.html gzip 954 B 954 B
withRouter.html gzip 939 B 939 B
Overall change 2.84 kB 2.84 kB

Serverless Mode
General Overall increase ⚠️
vercel/next.js canary Timer/next.js correctly-404-data-request Change
buildDuration 13.5s 13.3s -251ms
nodeModulesSize 57.4 MB 57.4 MB ⚠️ +72 B
Client Bundles (main, webpack, commons)
vercel/next.js canary Timer/next.js correctly-404-data-request Change
677f882d2ed8..4e55.js gzip 10.2 kB 10.2 kB
framework.HASH.js gzip 39 kB 39 kB
main-44ad070..7dbf.js gzip 7.2 kB 7.2 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 57.2 kB 57.2 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary Timer/next.js correctly-404-data-request Change
677f882d2ed8..dule.js gzip 6.11 kB 6.11 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-6707cd9..dule.js gzip 6.21 kB 6.21 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 52 kB 52 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary Timer/next.js correctly-404-data-request Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary Timer/next.js correctly-404-data-request Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-1464c..a26f.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-000f151..65d4.js gzip 1.29 kB 1.29 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.69 kB 7.69 kB
Client Pages Modern
vercel/next.js canary Timer/next.js correctly-404-data-request Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-e550f..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-4cfda7a..dule.js gzip 1.26 kB 1.26 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.35 kB 5.35 kB
Client Build Manifests
vercel/next.js canary Timer/next.js correctly-404-data-request Change
_buildManifest.js gzip 322 B 322 B
_buildManife..dule.js gzip 329 B 329 B
Overall change 651 B 651 B
Serverless bundles
vercel/next.js canary Timer/next.js correctly-404-data-request Change
_error.js 1.03 MB 1.03 MB
404.html 4.18 kB 4.18 kB
hooks.html 3.82 kB 3.82 kB
index.js 1.03 MB 1.03 MB
link.js 1.07 MB 1.07 MB
routerDirect.js 1.07 MB 1.07 MB
withRouter.js 1.07 MB 1.07 MB
Overall change 5.27 MB 5.27 MB
Commit: 878fd21

@ijjk
Copy link
Member

ijjk commented Aug 20, 2020

Failing test suites

Commit: 878fd21

test/integration/prerender/test/index.test.js

  • SSG Prerender > enumlated serverless mode > should not return data for fallback: false and missing dynamic page
Expand output

● SSG Prerender › enumlated serverless mode › should not return data for fallback: false and missing dynamic page

expect(received).toBe(expected) // Object.is equality

Expected: 404
Received: 200

  582 |       `/_next/data/${buildId}/dynamic/oopsie.json`
  583 |     )
> 584 |     expect(res1.status).toBe(404)
      |                         ^
  585 | 
  586 |     await waitFor(500)
  587 | 

  at Object.<anonymous> (integration/prerender/test/index.test.js:584:25)
      at runMicrotasks (<anonymous>)

@Timer Timer requested a review from ijjk August 20, 2020 17:00
@ijjk
Copy link
Member

ijjk commented Aug 20, 2020

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary Timer/next.js correctly-404-data-request Change
buildDuration 12.4s 12.7s ⚠️ +269ms
nodeModulesSize 57.4 MB 57.4 MB ⚠️ +72 B
Page Load Tests Overall increase ✓
vercel/next.js canary Timer/next.js correctly-404-data-request Change
/ failed reqs 0 0
/ total time (seconds) 2.256 2.235 -0.02
/ avg req/sec 1108.12 1118.45 +10.33
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.246 1.246
/error-in-render avg req/sec 2005.87 2005.67 ⚠️ -0.2
Client Bundles (main, webpack, commons)
vercel/next.js canary Timer/next.js correctly-404-data-request Change
677f882d2ed8..4e55.js gzip 10.2 kB 10.2 kB
framework.HASH.js gzip 39 kB 39 kB
main-44ad070..7dbf.js gzip 7.2 kB 7.2 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 57.2 kB 57.2 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary Timer/next.js correctly-404-data-request Change
677f882d2ed8..dule.js gzip 6.11 kB 6.11 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-6707cd9..dule.js gzip 6.21 kB 6.21 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 52 kB 52 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary Timer/next.js correctly-404-data-request Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary Timer/next.js correctly-404-data-request Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-1464c..a26f.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-000f151..65d4.js gzip 1.29 kB 1.29 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.69 kB 7.69 kB
Client Pages Modern
vercel/next.js canary Timer/next.js correctly-404-data-request Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-e550f..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-4cfda7a..dule.js gzip 1.26 kB 1.26 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.35 kB 5.35 kB
Client Build Manifests
vercel/next.js canary Timer/next.js correctly-404-data-request Change
_buildManifest.js gzip 322 B 322 B
_buildManife..dule.js gzip 329 B 329 B
Overall change 651 B 651 B
Rendered Page Sizes
vercel/next.js canary Timer/next.js correctly-404-data-request Change
index.html gzip 947 B 947 B
link.html gzip 954 B 954 B
withRouter.html gzip 939 B 939 B
Overall change 2.84 kB 2.84 kB

Serverless Mode
General Overall increase ⚠️
vercel/next.js canary Timer/next.js correctly-404-data-request Change
buildDuration 14.7s 14s -748ms
nodeModulesSize 57.4 MB 57.4 MB ⚠️ +72 B
Client Bundles (main, webpack, commons)
vercel/next.js canary Timer/next.js correctly-404-data-request Change
677f882d2ed8..4e55.js gzip 10.2 kB 10.2 kB
framework.HASH.js gzip 39 kB 39 kB
main-44ad070..7dbf.js gzip 7.2 kB 7.2 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 57.2 kB 57.2 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary Timer/next.js correctly-404-data-request Change
677f882d2ed8..dule.js gzip 6.11 kB 6.11 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-6707cd9..dule.js gzip 6.21 kB 6.21 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 52 kB 52 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary Timer/next.js correctly-404-data-request Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary Timer/next.js correctly-404-data-request Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-1464c..a26f.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-000f151..65d4.js gzip 1.29 kB 1.29 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.69 kB 7.69 kB
Client Pages Modern
vercel/next.js canary Timer/next.js correctly-404-data-request Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-e550f..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-4cfda7a..dule.js gzip 1.26 kB 1.26 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.35 kB 5.35 kB
Client Build Manifests
vercel/next.js canary Timer/next.js correctly-404-data-request Change
_buildManifest.js gzip 322 B 322 B
_buildManife..dule.js gzip 329 B 329 B
Overall change 651 B 651 B
Serverless bundles
vercel/next.js canary Timer/next.js correctly-404-data-request Change
_error.js 1.03 MB 1.03 MB
404.html 4.18 kB 4.18 kB
hooks.html 3.82 kB 3.82 kB
index.js 1.03 MB 1.03 MB
link.js 1.07 MB 1.07 MB
routerDirect.js 1.07 MB 1.07 MB
withRouter.js 1.07 MB 1.07 MB
Overall change 5.27 MB 5.27 MB
Commit: a6b4e28

@ijjk
Copy link
Member

ijjk commented Aug 20, 2020

Stats from current PR

Default Server Mode (Decrease detected ✓)
General Overall increase ⚠️
vercel/next.js canary Timer/next.js correctly-404-data-request Change
buildDuration 12.7s 12.8s ⚠️ +87ms
nodeModulesSize 57.4 MB 57.4 MB ⚠️ +72 B
Page Load Tests Overall decrease ⚠️
vercel/next.js canary Timer/next.js correctly-404-data-request Change
/ failed reqs 0 0
/ total time (seconds) 2.548 2.578 ⚠️ +0.03
/ avg req/sec 981.27 969.83 ⚠️ -11.44
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.514 1.56 ⚠️ +0.05
/error-in-render avg req/sec 1650.92 1602.65 ⚠️ -48.27
Client Bundles (main, webpack, commons)
vercel/next.js canary Timer/next.js correctly-404-data-request Change
677f882d2ed8..4e55.js gzip 10.2 kB 10.2 kB
framework.HASH.js gzip 39 kB 39 kB
main-44ad070..7dbf.js gzip 7.2 kB 7.2 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 57.2 kB 57.2 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary Timer/next.js correctly-404-data-request Change
677f882d2ed8..dule.js gzip 6.11 kB 6.11 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-6707cd9..dule.js gzip 6.21 kB 6.21 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 52 kB 52 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary Timer/next.js correctly-404-data-request Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary Timer/next.js correctly-404-data-request Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-1464c..a26f.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-000f151..65d4.js gzip 1.29 kB 1.29 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.69 kB 7.69 kB
Client Pages Modern
vercel/next.js canary Timer/next.js correctly-404-data-request Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-e550f..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-4cfda7a..dule.js gzip 1.26 kB 1.26 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.35 kB 5.35 kB
Client Build Manifests
vercel/next.js canary Timer/next.js correctly-404-data-request Change
_buildManifest.js gzip 322 B 322 B
_buildManife..dule.js gzip 329 B 329 B
Overall change 651 B 651 B
Rendered Page Sizes
vercel/next.js canary Timer/next.js correctly-404-data-request Change
index.html gzip 947 B 947 B
link.html gzip 954 B 954 B
withRouter.html gzip 939 B 939 B
Overall change 2.84 kB 2.84 kB

Serverless Mode
General Overall increase ⚠️
vercel/next.js canary Timer/next.js correctly-404-data-request Change
buildDuration 14.1s 13.7s -422ms
nodeModulesSize 57.4 MB 57.4 MB ⚠️ +72 B
Client Bundles (main, webpack, commons)
vercel/next.js canary Timer/next.js correctly-404-data-request Change
677f882d2ed8..4e55.js gzip 10.2 kB 10.2 kB
framework.HASH.js gzip 39 kB 39 kB
main-44ad070..7dbf.js gzip 7.2 kB 7.2 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 57.2 kB 57.2 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary Timer/next.js correctly-404-data-request Change
677f882d2ed8..dule.js gzip 6.11 kB 6.11 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-6707cd9..dule.js gzip 6.21 kB 6.21 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 52 kB 52 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary Timer/next.js correctly-404-data-request Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary Timer/next.js correctly-404-data-request Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-1464c..a26f.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-000f151..65d4.js gzip 1.29 kB 1.29 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.69 kB 7.69 kB
Client Pages Modern
vercel/next.js canary Timer/next.js correctly-404-data-request Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-e550f..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-4cfda7a..dule.js gzip 1.26 kB 1.26 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.35 kB 5.35 kB
Client Build Manifests
vercel/next.js canary Timer/next.js correctly-404-data-request Change
_buildManifest.js gzip 322 B 322 B
_buildManife..dule.js gzip 329 B 329 B
Overall change 651 B 651 B
Serverless bundles
vercel/next.js canary Timer/next.js correctly-404-data-request Change
_error.js 1.03 MB 1.03 MB
404.html 4.18 kB 4.18 kB
hooks.html 3.82 kB 3.82 kB
index.js 1.03 MB 1.03 MB
link.js 1.07 MB 1.07 MB
routerDirect.js 1.07 MB 1.07 MB
withRouter.js 1.07 MB 1.07 MB
Overall change 5.27 MB 5.27 MB
Commit: 844899b

@kodiakhq kodiakhq bot merged commit ec70096 into vercel:canary Aug 20, 2020
@Timer Timer deleted the correctly-404-data-request branch August 20, 2020 18:03
@vercel vercel locked as resolved and limited conversation to collaborators Jan 30, 2022
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.

Generating static pages even with no paths and fallback:false
2 participants