{"record":{"id":"e665f3440087ab08","repo":"gatsbyjs/gatsby","slug":"111005-e665f3","errorCode":"111005","errorMessage":"gatsby-plugin-image is missing from your project.\\nPlease install \"gatsby-plugin-image\".","messagePattern":"gatsby-plugin-image is missing from your project\\.\\\\nPlease install \"gatsby-plugin-image\"\\.","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/gatsby-source-contentful/src/gatsby-node.js","lineNumber":54,"sourceCode":"          pluginOptions.accessToken\n        )}\". Make sure to double check them!`\n\n        throw new Error(errorMessage)\n      }\n    })\n\n  return undefined\n}\n\nexport const onPreInit = async (\n  { store, reporter, actions },\n  pluginOptions\n) => {\n  // if gatsby-plugin-image is not installed\n  try {\n    await import(`gatsby-plugin-image/graphql-utils`)\n  } catch (err) {\n    reporter.panic({\n      id: CODES.GatsbyPluginMissing,\n      context: {\n        sourceMessage: `gatsby-plugin-image is missing from your project.\\nPlease install \"gatsby-plugin-image\".`,\n      },\n    })\n  }\n\n  // if gatsby-plugin-image is not configured\n  if (\n    !store\n      .getState()\n      .flattenedPlugins.find(plugin => plugin.name === `gatsby-plugin-image`)\n  ) {\n    reporter.panic({\n      id: CODES.GatsbyPluginMissing,\n      context: {\n        sourceMessage: `gatsby-plugin-image is missing from your gatsby-config file.\\nPlease add \"gatsby-plugin-image\" to your plugins array.`,\n      },","sourceCodeStart":36,"sourceCodeEnd":72,"githubUrl":"https://github.com/gatsbyjs/gatsby/blob/e85d62f1779e353eaac1753211629a26d123e26c/packages/gatsby-source-contentful/src/gatsby-node.js#L36-L72","documentation":"onPreInit probes for gatsby-plugin-image by dynamically importing gatsby-plugin-image/graphql-utils. An import failure means the package is not installed in the project, which gatsby-source-contentful requires for its image GraphQL integration; the catch escalates to a structured panic telling the user to install it.","triggerScenarios":"Thrown at packages/gatsby-source-contentful/src/gatsby-node.js:54 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["npm install gatsby-plugin-image","Add gatsby-plugin-image to gatsby-config.js plugins","Rebuild after installing the package"],"exampleFix":null,"handlingStrategy":"try-catch","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"}