Explore Library
Code Quiz

ISR Revalidation in the App Router

Spot why this App Router page never uses Incremental Static Regeneration despite setting revalidate.

Codetypescript
// app/products/page.tsx

export const revalidate = 60;

async function getProducts() {
  const res = await fetch('https://api.example.com/products', {
    cache: 'no-store',
  });
  return res.json();
}

export default async function ProductsPage() {
  const products = await getProducts();

  return (
    <ul>
      {products.map((p: { id: string; name: string }) => (
        <li key={p.id}>{p.name}</li>
      ))}
    </ul>
  );
}

The page sets `revalidate = 60` for ISR, but it re-fetches on every request instead. What is the bug?