diff --git a/packages/next/src/server/app-render/dynamic-rendering.ts b/packages/next/src/server/app-render/dynamic-rendering.ts index e27f807c16ff3..c818783184fce 100644 --- a/packages/next/src/server/app-render/dynamic-rendering.ts +++ b/packages/next/src/server/app-render/dynamic-rendering.ts @@ -180,9 +180,11 @@ export function trackDynamicFetch( store: StaticGenerationStore, expression: string ) { - if (store.prerenderState) { - postponeWithTracking(store.prerenderState, expression, store.urlPathname) - } + // If we aren't in a prerender, or we're in an unstable cache callback, we + // don't need to postpone. + if (!store.prerenderState || store.isUnstableCacheCallback) return + + postponeWithTracking(store.prerenderState, expression, store.urlPathname) } function postponeWithTracking( diff --git a/packages/next/src/server/lib/patch-fetch.ts b/packages/next/src/server/lib/patch-fetch.ts index c5fc3f9497a96..482d845507201 100644 --- a/packages/next/src/server/lib/patch-fetch.ts +++ b/packages/next/src/server/lib/patch-fetch.ts @@ -278,13 +278,6 @@ function createPatchedFetcher( return originFetch(input, init) } - // If the current scope is within an unstable cache callback, then - // we shouldn't do any special treatment of fetch because the - // surrounding callback will already be cached. - if (staticGenerationStore.isUnstableCacheCallback) { - return originFetch(input, init) - } - const isRequestInput = input && typeof input === 'object' &&