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

Emit build error when useCache is enabled and Edge runtime is used #75279

Merged
merged 3 commits into from
Jan 24, 2025

Conversation

unstubbable
Copy link
Contributor

@unstubbable unstubbable commented Jan 24, 2025

The "use cache" directive is not compatible with the Edge runtime.

When the experimental.useCache flag is enabled, we now emit a build error for pages with export const runtime = 'edge'. This is analogous to using the experimental.dynamicIO flag.

The other route segment configs that are forbidden when dynamicIO is enabled, are currently still allowed for useCache:

  • dynamicParams
  • dynamic
  • fetchCache
  • revalidate

Copy link
Contributor Author

unstubbable commented Jan 24, 2025

@ijjk
Copy link
Member

ijjk commented Jan 24, 2025

Stats from current PR

Default Build (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary vercel/next.js hl/use-cache-runtime-error Change
buildDuration 20.3s 18.5s N/A
buildDurationCached 17.5s 14.7s N/A
nodeModulesSize 419 MB 419 MB ⚠️ +344 B
nextStartRea..uration (ms) 482ms 455ms N/A
Client Bundles (main, webpack)
vercel/next.js canary vercel/next.js hl/use-cache-runtime-error Change
5306-HASH.js gzip 54.1 kB 54.1 kB N/A
8276.HASH.js gzip 169 B 168 B N/A
8377-HASH.js gzip 5.46 kB 5.46 kB N/A
bccd1874-HASH.js gzip 52.9 kB 52.9 kB N/A
framework-HASH.js gzip 57.5 kB 57.5 kB N/A
main-app-HASH.js gzip 240 B 242 B N/A
main-HASH.js gzip 34.6 kB 34.6 kB N/A
webpack-HASH.js gzip 1.71 kB 1.71 kB N/A
Overall change 0 B 0 B
Legacy Client Bundles (polyfills)
vercel/next.js canary vercel/next.js hl/use-cache-runtime-error Change
polyfills-HASH.js gzip 39.4 kB 39.4 kB
Overall change 39.4 kB 39.4 kB
Client Pages
vercel/next.js canary vercel/next.js hl/use-cache-runtime-error Change
_app-HASH.js gzip 193 B 193 B
_error-HASH.js gzip 193 B 193 B
amp-HASH.js gzip 512 B 510 B N/A
css-HASH.js gzip 343 B 342 B N/A
dynamic-HASH.js gzip 1.84 kB 1.84 kB
edge-ssr-HASH.js gzip 265 B 265 B
head-HASH.js gzip 363 B 362 B N/A
hooks-HASH.js gzip 393 B 392 B N/A
image-HASH.js gzip 4.59 kB 4.58 kB N/A
index-HASH.js gzip 268 B 268 B
link-HASH.js gzip 2.35 kB 2.35 kB N/A
routerDirect..HASH.js gzip 328 B 328 B
script-HASH.js gzip 397 B 397 B
withRouter-HASH.js gzip 323 B 326 B N/A
1afbb74e6ecf..834.css gzip 106 B 106 B
Overall change 3.59 kB 3.59 kB
Client Build Manifests
vercel/next.js canary vercel/next.js hl/use-cache-runtime-error Change
_buildManifest.js gzip 748 B 747 B N/A
Overall change 0 B 0 B
Rendered Page Sizes
vercel/next.js canary vercel/next.js hl/use-cache-runtime-error Change
index.html gzip 523 B 523 B
link.html gzip 538 B 539 B N/A
withRouter.html gzip 518 B 521 B N/A
Overall change 523 B 523 B
Edge SSR bundle Size
vercel/next.js canary vercel/next.js hl/use-cache-runtime-error Change
edge-ssr.js gzip 129 kB 129 kB N/A
page.js gzip 210 kB 210 kB N/A
Overall change 0 B 0 B
Middleware size
vercel/next.js canary vercel/next.js hl/use-cache-runtime-error Change
middleware-b..fest.js gzip 668 B 666 B N/A
middleware-r..fest.js gzip 155 B 156 B N/A
middleware.js gzip 31.3 kB 31.3 kB N/A
edge-runtime..pack.js gzip 844 B 844 B
Overall change 844 B 844 B
Next Runtimes
vercel/next.js canary vercel/next.js hl/use-cache-runtime-error Change
274-experime...dev.js gzip 322 B 322 B
274.runtime.dev.js gzip 314 B 314 B
app-page-exp...dev.js gzip 378 kB 378 kB
app-page-exp..prod.js gzip 132 kB 132 kB
app-page-tur..prod.js gzip 145 kB 145 kB
app-page-tur..prod.js gzip 141 kB 141 kB
app-page.run...dev.js gzip 365 kB 365 kB
app-page.run..prod.js gzip 128 kB 128 kB
app-route-ex...dev.js gzip 37.6 kB 37.6 kB
app-route-ex..prod.js gzip 25.6 kB 25.6 kB
app-route-tu..prod.js gzip 25.6 kB 25.6 kB
app-route-tu..prod.js gzip 25.4 kB 25.4 kB
app-route.ru...dev.js gzip 39.2 kB 39.2 kB
app-route.ru..prod.js gzip 25.4 kB 25.4 kB
pages-api-tu..prod.js gzip 9.69 kB 9.69 kB
pages-api.ru...dev.js gzip 11.6 kB 11.6 kB
pages-api.ru..prod.js gzip 9.68 kB 9.68 kB
pages-turbo...prod.js gzip 21.9 kB 21.9 kB
pages.runtim...dev.js gzip 27.7 kB 27.7 kB
pages.runtim..prod.js gzip 21.9 kB 21.9 kB
server.runti..prod.js gzip 916 kB 916 kB
Overall change 2.49 MB 2.49 MB
build cache Overall increase ⚠️
vercel/next.js canary vercel/next.js hl/use-cache-runtime-error Change
0.pack gzip 2.1 MB 2.11 MB ⚠️ +4.71 kB
index.pack gzip 75.1 kB 74.4 kB N/A
Overall change 2.1 MB 2.11 MB ⚠️ +4.71 kB
Diff details
Diff for main-HASH.js

Diff too large to display

Commit: e0a12a0

@unstubbable unstubbable force-pushed the hl/fix-export-validations branch from ac01ee8 to ebf6ba5 Compare January 24, 2025 15:10
@unstubbable unstubbable force-pushed the hl/use-cache-runtime-error branch from 6d00983 to 0275476 Compare January 24, 2025 15:10
@unstubbable unstubbable marked this pull request as ready for review January 24, 2025 15:38
@unstubbable unstubbable force-pushed the hl/fix-export-validations branch from ebf6ba5 to cfecc86 Compare January 24, 2025 16:33
@unstubbable unstubbable force-pushed the hl/use-cache-runtime-error branch from 4f9bc9a to 5cc6a96 Compare January 24, 2025 16:33
Base automatically changed from hl/fix-export-validations to canary January 24, 2025 16:55
The `"use cache"` directive is not compatible with the Edge runtime.

When the `experimental.useCache` flag is enabled, we now emit a build
error for pages with `export const runtime = 'edge'`. This is analogous
to using the `experimental.dynamicIO` flag.

The other route segment configs that are forbidden when `dynamicIO` is
enabled, are currently still allowed for `useCache`:

- `dynamicParams`
- `dynamic`
- `fetchCache`
- `revalidate`
@unstubbable unstubbable force-pushed the hl/use-cache-runtime-error branch from 5cc6a96 to e0a12a0 Compare January 24, 2025 16:57
@unstubbable unstubbable enabled auto-merge (squash) January 24, 2025 16:59
@unstubbable unstubbable merged commit 7aa6137 into canary Jan 24, 2025
131 checks passed
@unstubbable unstubbable deleted the hl/use-cache-runtime-error branch January 24, 2025 17:33
@github-actions github-actions bot added the locked label Feb 8, 2025
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Feb 8, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
created-by: Next.js team PRs by the Next.js team. locked tests Turbopack Related to Turbopack with Next.js. type: next
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants