{"record":{"id":"99be7da2f3f32425","repo":"gatsbyjs/gatsby","slug":"the-name-plugin-has-generated-no-gatsby-nodes","errorCode":null,"errorMessage":"The ${name} plugin has generated no Gatsby nodes. Do you need it? This could also suggest the plugin is misconfigured.","messagePattern":"The (.+?) plugin has generated no Gatsby nodes\\. Do you need it\\? This could also suggest the plugin is misconfigured\\.","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/gatsby/src/utils/source-nodes.ts","lineNumber":44,"sourceCode":"  return flattenedPlugins\n    .filter(\n      plugin =>\n        // \"Can generate nodes\"\n        plugin.nodeAPIs.includes(`sourceNodes`) &&\n        // \"Has not generated nodes\"\n        !pluginNamesThatCreatedNodes.has(plugin.name)\n    )\n    .map(plugin => plugin.name)\n}\n\n/**\n * Warn about plugins that should have created nodes but didn't.\n */\nfunction warnForPluginsWithoutNodes(): void {\n  const pluginNamesWithNoNodes = discoverPluginNamesWithoutNodes()\n\n  pluginNamesWithNoNodes.map(name =>\n    report.warn(\n      `The ${name} plugin has generated no Gatsby nodes. Do you need it? This could also suggest the plugin is misconfigured.`\n    )\n  )\n}\n\n/**\n * Return the set of nodes for which its root node has not been touched\n */\nfunction getStaleNodes(\n  state: IGatsbyState,\n  nodes: GatsbyIterable<IGatsbyNode>\n): GatsbyIterable<IGatsbyNode> {\n  return nodes.filter(node => {\n    let rootNode = node\n    let next: IGatsbyNode | undefined = undefined\n\n    let whileCount = 0\n    do {","sourceCodeStart":26,"sourceCodeEnd":62,"githubUrl":"https://github.com/gatsbyjs/gatsby/blob/e85d62f1779e353eaac1753211629a26d123e26c/packages/gatsby/src/utils/source-nodes.ts#L26-L62","documentation":"Guard in warnForPluginsWithoutNodes, run after sourceNodes: any plugin that implements sourceNodes but created zero nodes during the run is flagged. The input at fault is the plugin itself — either it is unnecessary for the site, or its sourceNodes logic (fetching, filtering, conditional returns) silently produced no nodes.","triggerScenarios":"Thrown at packages/gatsby/src/utils/source-nodes.ts:44 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Remove the plugin from gatsby-config.js if it is not needed","Check the plugin's configuration/credentials so its sourceNodes call actually fetches data","Debug the plugin's createNode calls to find why no nodes are created"],"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"}