{"record":{"id":"afacb72b6f462651","repo":"gatsbyjs/gatsby","slug":"gatsby-source-drupal-no-gatsby-image-cdn-placeho","errorCode":null,"errorMessage":"[gatsby-source-drupal]\nNo Gatsby Image CDN placeholder style found. Please ensure that you have a placeholder style in your Drupal site for the fastest builds. See the docs for more info on gatsby-source-drupal Image CDN support:\nhttps://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-source-drupal#readme\n","messagePattern":"\\[gatsby-source-drupal\\]\nNo Gatsby Image CDN placeholder style found\\. Please ensure that you have a placeholder style in your Drupal site for the fastest builds\\. See the docs for more info on gatsby-source-drupal Image CDN support:\nhttps://github\\.com/gatsbyjs/gatsby/tree/master/packages/gatsby-source-drupal#readme\n","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/gatsby-source-drupal/src/gatsby-node.ts","lineNumber":765,"sourceCode":"      )\n\n      drupalCreateNodeManifest({\n        attributes: datum?.attributes,\n        gatsbyNode: node,\n        unstable_createNodeManifest,\n      })\n\n      nodes.set(node.id, node)\n    })\n  }\n\n  if (\n    skipFileDownloads &&\n    !imageCDNState.foundPlaceholderStyle &&\n    !imageCDNState.hasLoggedNoPlaceholderStyle\n  ) {\n    imageCDNState.hasLoggedNoPlaceholderStyle = true\n    reporter.warn(\n      `[gatsby-source-drupal]\\nNo Gatsby Image CDN placeholder style found. Please ensure that you have a placeholder style in your Drupal site for the fastest builds. See the docs for more info on gatsby-source-drupal Image CDN support:\\n${imageCdnDocs}\\n`\n    )\n  }\n\n  createNodesSpan.setTag(`sourceNodes.createNodes.count`, nodes.size)\n\n  // second pass - handle relationships and back references\n  for (const node of Array.from(nodes.values())) {\n    await handleReferences(node, {\n      getNode: nodes.get.bind(nodes),\n      mutateNode: true,\n      createNodeId,\n      cache,\n      entityReferenceRevisions,\n      pluginOptions,\n    })\n  }\n","sourceCodeStart":747,"sourceCodeEnd":783,"githubUrl":"https://github.com/gatsbyjs/gatsby/blob/e85d62f1779e353eaac1753211629a26d123e26c/packages/gatsby-source-drupal/src/gatsby-node.ts#L747-L783","documentation":"Fires once per build when skipFileDownloads (Image CDN mode) is enabled but the Drupal site defines no Gatsby Image CDN placeholder style. Image CDN still works, but placeholders fall back to slower/less optimal generation because the fast server-side placeholder endpoint is missing.","triggerScenarios":"Thrown at packages/gatsby-source-drupal/src/gatsby-node.ts:765 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Create a placeholder image style in your Drupal site so the Image CDN placeholder endpoint exists.","Confirm the Drupal site's placeholder style matches what gatsby-source-drupal expects (see the plugin README's Image CDN section).","If placeholder optimization is not needed, safely ignore the warning."],"exampleFix":null,"handlingStrategy":"fallback","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-14T00:17:10.932Z"}