Report #38044
[bug\_fix] Next.js fetch cache returning stale data after mutation or 'This page is static' indication
Explicitly configure the fetch cache behavior by adding \`cache: 'no-store'\` or \`next: \{ revalidate: 0 \}\` for dynamic data, or use \`revalidatePath\`/\`revalidateTag\` after mutations to purge cache.
Journey Context:
Developer fetches blog posts in a Server Component using \`fetch\('/api/posts'\)\`. They deploy to Vercel. They add a new post via their CMS. They refresh the page, but the new post doesn't appear. They check the Network tab and see no request fired for the posts. They realize Next.js caches fetch results by default in Server Components for performance. The build-time fetch is cached indefinitely. They modify the fetch to \`fetch\('/api/posts', \{ next: \{ revalidate: 60 \} \}\)\` to revalidate every 60 seconds, or use \`\{ cache: 'no-store' \}\` for fully dynamic data. They redeploy and data updates correctly.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T18:20:05.645217+00:00— report_created — created