{"record":{"id":"61a87f7727a02d40","repo":"gatsbyjs/gatsby","slug":"plugin-pluginname-called-unstable-createnodeman","errorCode":null,"errorMessage":"Plugin ${pluginName} called unstable_createNodeManifest with an updatedAtUTC that isn't a proper value to instantiate a Date.","messagePattern":"Plugin (.+?) called unstable_createNodeManifest with an updatedAtUTC that isn't a proper value to instantiate a Date\\.","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/gatsby/src/redux/reducers/node-manifest.ts","lineNumber":29,"sourceCode":"\nexport const nodeManifestReducer = (\n  state: IGatsbyState[\"nodeManifests\"] = [],\n  action: ICreateNodeManifest | IDeleteNodeManifests\n): IGatsbyState[\"nodeManifests\"] => {\n  switch (action.type) {\n    case `CREATE_NODE_MANIFEST`: {\n      const { manifestId, pluginName, node, updatedAtUTC } = action.payload\n\n      const maxDaysOld =\n        Number(process.env.NODE_MANIFEST_MAX_DAYS_OLD) || DEFAULT_MAX_DAYS_OLD\n\n      if (updatedAtUTC) {\n        const nodeLastUpdatedAtUTC: number = new Date(updatedAtUTC).getTime()\n        if (\n          (nodeLastUpdatedAtUTC as any) instanceof Date &&\n          !isNaN(nodeLastUpdatedAtUTC)\n        ) {\n          reporter.warn(\n            `Plugin ${pluginName} called unstable_createNodeManifest with an updatedAtUTC that isn't a proper value to instantiate a Date.`\n          )\n\n          return state\n        }\n\n        const shouldCreateNodeManifest =\n          Date.now() - nodeLastUpdatedAtUTC <= maxDaysOld * ONE_DAY\n\n        if (!shouldCreateNodeManifest) {\n          return state\n        }\n      }\n\n      if (typeof manifestId !== `string`) {\n        reporter.warn(\n          `Plugin ${pluginName} called unstable_createNodeManifest with a manifestId that isn't a string.`\n        )","sourceCodeStart":11,"sourceCodeEnd":47,"githubUrl":"https://github.com/gatsbyjs/gatsby/blob/e85d62f1779e353eaac1753211629a26d123e26c/packages/gatsby/src/redux/reducers/node-manifest.ts#L11-L47","documentation":"Validation inside the nodeManifestReducer when handling CREATE_NODE_MANIFEST: a source plugin called unstable_createNodeManifest with an updatedAtUTC value that cannot instantiate a valid Date (NaN). The manifest is discarded (state returned unchanged) and the plugin is warned, protecting the reducer from bad timestamps.","triggerScenarios":"Thrown at packages/gatsby/src/redux/reducers/node-manifest.ts:29 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Fix the plugin to pass a valid ISO date string or epoch-ms number for updatedAtUTC","Omit updatedAtUTC entirely if the source has no update timestamps","Verify the remote CMS field mapped to updatedAtUTC isn't null/garbage"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"e85d62f1779e353eaac1753211629a26d123e26c","analyzedAt":"2026-08-26T17:50:09.662Z","contentChangedAt":"2026-08-26T17:50:09.662Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}