diff --git a/packages/next/src/build/webpack/plugins/define-env-plugin.ts b/packages/next/src/build/webpack/plugins/define-env-plugin.ts index 854c788193f03..1f583b7e53bbc 100644 --- a/packages/next/src/build/webpack/plugins/define-env-plugin.ts +++ b/packages/next/src/build/webpack/plugins/define-env-plugin.ts @@ -183,6 +183,7 @@ export function getDefineEnv({ config.devIndicators.appIsrStatus ), 'process.env.__NEXT_PPR': checkIsAppPPREnabled(config.experimental.ppr), + 'process.env.__NEXT_DYNAMIC_IO': !!config.experimental.dynamicIO, 'process.env.__NEXT_AFTER': config.experimental.after ?? false, 'process.env.NEXT_DEPLOYMENT_ID': config.deploymentId || false, 'process.env.__NEXT_FETCH_CACHE_KEY_PREFIX': fetchCacheKeyPrefix ?? '', diff --git a/packages/next/src/server/use-cache/use-cache-wrapper.ts b/packages/next/src/server/use-cache/use-cache-wrapper.ts index 7ae8085595efc..0ee4d42648e66 100644 --- a/packages/next/src/server/use-cache/use-cache-wrapper.ts +++ b/packages/next/src/server/use-cache/use-cache-wrapper.ts @@ -160,6 +160,11 @@ async function generateCacheEntry( } export function cache(kind: string, id: string, fn: any) { + if (!process.env.__NEXT_DYNAMIC_IO) { + throw new Error( + '"use cache" is only available with the experimental.dynamicIO config.' + ) + } const cacheHandler = cacheHandlerMap.get(kind) if (cacheHandler === undefined) { throw new Error('Unknown cache handler: ' + kind)