rembrembdocs

unstable_noStore

This is a legacy API and no longer recommended. It's still supported for backward compatibility.

Last updated April 23, 2026

In version 15, we recommend using connection instead of unstable_noStore.

unstable_noStore can be used to declaratively opt out of prerendering and indicate a particular component should not be cached.

import { unstable_noStore as noStore } from 'next/cache';
 
export default async function ServerComponent() {
  noStore();
  const result = await db.query(...);
  ...
}

Good to know:

  • unstable_noStore is equivalent to cache: 'no-store' on a fetch
  • unstable_noStore is preferred over export const dynamic = 'force-dynamic' as it is more granular and can be used on a per-component basis

Usage

If you prefer not to pass additional options to fetch, like cache: 'no-store', next: { revalidate: 0 } or in cases where fetch is not available, you can use noStore() as a replacement for all of these use cases.

import { unstable_noStore as noStore } from 'next/cache';
 
export default async function ServerComponent() {
  noStore();
  const result = await db.query(...);
  ...
}

Version History

VersionChanges
v15.0.0unstable_noStore deprecated for connection.
v14.0.0unstable_noStore introduced.

Was this helpful?