gatsbyjs/gatsby · error
Plugin ${pluginName} called unstable_createNodeManifest with
Error message
Plugin ${pluginName} called unstable_createNodeManifest with a manifestId that isn't a string. What it means
Validation inside nodeManifestReducer: unstable_createNodeManifest was called with a manifestId that is not a string. The reducer rejects the manifest (returns state unchanged) and warns, since manifest ids must be strings to key content-update events for incremental builds.
Source
Thrown at packages/gatsby/src/redux/reducers/node-manifest.ts:45
!isNaN(nodeLastUpdatedAtUTC)
) {
reporter.warn(
`Plugin ${pluginName} called unstable_createNodeManifest with an updatedAtUTC that isn't a proper value to instantiate a Date.`
)
return state
}
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: {View on GitHub (pinned to e85d62f177)
Solutions
- Coerce the id to a string before calling unstable_createNodeManifest (e.g. String(id) or the node's contentDigest)
- Ensure the plugin generates a stable string manifestId per node
- Update the source plugin version
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at packages/gatsby/src/redux/reducers/node-manifest.ts:45 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/817fc7ccb868b6e1.
Report an issue: GitHub.