gatsbyjs/gatsby · error

[gatsby] node manifests were created but no page-data.json f

Error message

[gatsby] node manifests were created but no page-data.json files were written, so manifest ID's were not added to page-data.json files. This may be a bug or it may be due to a source plugin creating a node manifest for a node that did not change. Node manifest IDs: ${nodeManifests.map(n => n.manifestId).slice(0, maxManifestIdsToLog).join(",")}${nodeManifests.length > maxManifestIdsToLog ? ` There were ${nodeManifests.length - maxManifestIdsToLog} additional ID's that were not logged due to output length.` : ``}

What it means

Error "[gatsby] node manifests were created but no page-data.json files were written, so manifest ID's were not added to page-data.json files. This may be a bug or it may be due to a source plugin creating a node manifest for a node that did not change. Node manifest IDs: ${nodeManifests.map(n => n.manifestId).slice(0, maxManifestIdsToLog).join(",")}${nodeManifests.length > maxManifestIdsToLog ? ` There were ${nodeManifests.length - maxManifestIdsToLog} additional ID's that were not logged due to output length.` : ``}" thrown in gatsbyjs/gatsby.

Source

Thrown at packages/gatsby/src/utils/page-data.ts:231

    slicesByTemplate,
    nodeManifests,
  } = store.getState()
  const isBuild = program?._?.[0] !== `develop`

  const { pagePaths, sliceNames } = pendingPageDataWrites
  let writePageDataActivity

  let nodeManifestPagePathMap

  if (pagePaths.size > 0) {
    // we process node manifests in this location because we need to add the manifestId to the page data.
    // We use this manifestId to determine if the page data is up to date when routing. Here we create a map of "pagePath": "manifestId" while processing and writing node manifest files.
    // We only do this when there are pending page-data writes because otherwise we could flush pending createNodeManifest calls before page-data.json files are written. Which means those page-data files wouldn't have the corresponding manifest id's written to them.
    nodeManifestPagePathMap = await processNodeManifests()
  } else if (nodeManifests.length > 0 && staleNodeManifests) {
    staleNodeManifests = false

    reporter.warn(
      `[gatsby] node manifests were created but no page-data.json files were written, so manifest ID's were not added to page-data.json files. This may be a bug or it may be due to a source plugin creating a node manifest for a node that did not change. Node manifest IDs: ${nodeManifests
        .map(n => n.manifestId)
        .slice(0, maxManifestIdsToLog)
        .join(`,`)}${
        nodeManifests.length > maxManifestIdsToLog
          ? ` There were ${
              nodeManifests.length - maxManifestIdsToLog
            } additional ID's that were not logged due to output length.`
          : ``
      }`
    )

    nodeManifestPagePathMap = await processNodeManifests()
  } else if (nodeManifests.length > 0) {
    staleNodeManifests = true
  }

  if (pagePaths.size > 0 || sliceNames.size > 0) {

View on GitHub (pinned to e85d62f177)

Solutions

  1. Re-run the build so changed pages write page-data.json and manifest IDs are persisted
  2. Check whether the node manifest was created for an unchanged node (no page-data write expected)
  3. If page-data writes are expected, report as a potential bug with the listed manifest IDs
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at packages/gatsby/src/utils/page-data.ts:231 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of gatsbyjs/gatsby@e85d62f177 (2026-08-26). Data as JSON: /api/errors/e8e48a1a0657ad06. Report an issue: GitHub.