gatsbyjs/gatsby · error
Plugin ${pluginName} called unstable_createNodeManifest but
Error message
Plugin ${pluginName} called unstable_createNodeManifest but didn't provide a node. What it means
Validation inside nodeManifestReducer: unstable_createNodeManifest was called without a node (or a node without an id). The reducer drops the manifest and warns, because a node manifest is meaningless without the node identity used to correlate content updates.
Source
Thrown at packages/gatsby/src/redux/reducers/node-manifest.ts:53
const shouldCreateNodeManifest =
Date.now() - nodeLastUpdatedAtUTC <= maxDaysOld * ONE_DAY
if (!shouldCreateNodeManifest) {
return state
}
}
if (typeof manifestId !== `string`) {
reporter.warn(
`Plugin ${pluginName} called unstable_createNodeManifest with a manifestId that isn't a string.`
)
return state
}
if (!node?.id) {
reporter.warn(
`Plugin ${pluginName} called unstable_createNodeManifest but didn't provide a node.`
)
return state
}
state.push({
manifestId,
pluginName,
node: {
id: node.id,
},
})
return state
}
case `DELETE_NODE_MANIFESTS`: {View on GitHub (pinned to e85d62f177)
Solutions
- Pass the created/updated node object to unstable_createNodeManifest
- Ensure the node has an id before manifesting (guard on node?.id)
- Fix plugin call ordering so the manifest is created after node creation
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at packages/gatsby/src/redux/reducers/node-manifest.ts:53 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/f700ce60d1091924.
Report an issue: GitHub.