vercel/next.js · error · Error

Failed to fetch _devPagesManifest.json. Is something blockin

Error message

Failed to fetch _devPagesManifest.json. Is something blocking that network request?
Read more: https://nextjs.org/docs/messages/failed-to-fetch-devpagesmanifest

What it means

In development, `PageLoader.getPageList()` (page-loader.ts:71-86) fetches `_next/static/development/_devPagesManifest.json` to discover routes. If the fetch rejects, the `.catch` rethrows this `Error`. The manifest is a dev-only artifact; in production the client build manifest is used instead. The failure indicates the dev server could not serve the manifest to the browser.

Source

Thrown at packages/next/src/client/page-loader.ts:82

  getPageList() {
    if (process.env.NODE_ENV === 'production') {
      return getClientBuildManifest().then((manifest) => manifest.sortedPages)
    } else {
      if (window.__DEV_PAGES_MANIFEST) {
        return window.__DEV_PAGES_MANIFEST.pages
      } else {
        this.promisedDevPagesManifest ||= fetch(
          `${this.assetPrefix}/_next/static/development/${DEV_CLIENT_PAGES_MANIFEST}`,
          { credentials: 'same-origin' }
        )
          .then((res) => res.json())
          .then((manifest: { pages: string[] }) => {
            window.__DEV_PAGES_MANIFEST = manifest
            return manifest.pages
          })
          .catch((err) => {
            console.log(`Failed to fetch devPagesManifest:`, err)
            throw new Error(
              `Failed to fetch _devPagesManifest.json. Is something blocking that network request?\n` +
                'Read more: https://nextjs.org/docs/messages/failed-to-fetch-devpagesmanifest'
            )
          })
        return this.promisedDevPagesManifest
      }
    }
  }

  getMiddleware() {
    // Webpack production
    if (
      process.env.NODE_ENV === 'production' &&
      process.env.__NEXT_MIDDLEWARE_MATCHERS
    ) {
      const middlewareMatchers = process.env.__NEXT_MIDDLEWARE_MATCHERS
      window.__MIDDLEWARE_MATCHERS = middlewareMatchers
        ? (middlewareMatchers as any as ProxyMatcher[])

View on GitHub (pinned to 0ae8c72462)

Solutions

  1. Disable browser extensions (ad blockers, privacy extensions) that may block `_next` requests and reload.
  2. Restart `next dev` and hard-refresh the browser to regenerate and refetch the manifest.
  3. Check the browser Network tab for the failed `_devPagesManifest.json` request and its status/error.
  4. Verify `basePath`/`assetPrefix` in next.config.js point at the serving origin.

Example fix

// Not a code fix — environment/config issue.
// 1. Restart dev server: `next dev`
// 2. Hard refresh (Ctrl+Shift R)
// 3. Disable ad blockers for localhost
// next.config.js — ensure no stray assetPrefix:
module.exports = { /* no assetPrefix in dev */ }
Defensive patterns

Strategy: retry

Validate before calling

// Not preventable in code — it's a dev-server/network issue.
// Pre-check: ensure dev server is reachable before relying on route discovery.
async function devServerUp(baseUrl: string): Promise<boolean> {
  try { await fetch(baseUrl); return true } catch { return false }
}

Try / catch

// PageLoader caches the promise; a hard refresh re-fetches.
// No application-level catch needed — fix the environment.

Prevention

When it happens

Trigger: The browser requests `_devPagesManifest.json` and the fetch fails (network error, 404, CORS, blocked by an extension/proxy). This happens during client-side route discovery in `next dev`.

Common situations: An ad blocker or privacy extension blocking the `_next` path; a proxy/corporate firewall stripping the request; the dev server crashed or restarted between page load and the manifest fetch; a misconfigured `basePath`/`assetPrefix`; HMR in a broken state after editing config files.

Related errors


AI-assisted analysis of vercel/next.js@0ae8c72462 (2026-08-06). Data as JSON: /api/errors/c0e537fffc454663. Report an issue: GitHub.