{"record":{"id":"e7b146a19d3d03f1","repo":"gatsbyjs/gatsby","slug":"plugin-plugin-name-has-customized-the-graphql","errorCode":null,"errorMessage":"Plugin `${plugin.name}` has customized the GraphQL type `${typeComposer.getTypeName()}`, which has already been defined by the plugin `${typeOwner}`. This could potentially cause conflicts.","messagePattern":"Plugin `(.+?)` has customized the GraphQL type `(.+?)`, which has already been defined by the plugin `(.+?)`\\. This could potentially cause conflicts\\.","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/gatsby/src/schema/schema.js","lineNumber":372,"sourceCode":"  createdFrom,\n  parentSpan,\n}) => {\n  // The merge is considered safe when a user or a plugin owning the type extend this type\n  // TODO: add proper conflicts detection and reporting (on the field level)\n  const typeOwner = typeComposer.getExtension(`plugin`)\n  const isOverridableBuiltInType =\n    !typeOwner && overridableBuiltInTypeNames.has(typeComposer.getTypeName())\n\n  const isSafeMerge =\n    !plugin ||\n    plugin.name === `default-site-plugin` ||\n    plugin.name === typeOwner ||\n    typeComposer.hasExtension(`isPlaceholder`) ||\n    isOverridableBuiltInType\n\n  if (!isSafeMerge) {\n    if (typeOwner) {\n      report.warn(\n        `Plugin \\`${plugin.name}\\` has customized the GraphQL type ` +\n          `\\`${typeComposer.getTypeName()}\\`, which has already been defined ` +\n          `by the plugin \\`${typeOwner}\\`. ` +\n          `This could potentially cause conflicts.`\n      )\n    } else {\n      report.warn(\n        `Plugin \\`${plugin.name}\\` has customized the built-in Gatsby GraphQL type ` +\n          `\\`${typeComposer.getTypeName()}\\`. ` +\n          `This is allowed, but could potentially cause conflicts.`\n      )\n    }\n  }\n\n  if (\n    type instanceof ObjectTypeComposer ||\n    type instanceof InterfaceTypeComposer ||\n    type instanceof GraphQLObjectType ||","sourceCodeStart":354,"sourceCodeEnd":390,"githubUrl":"https://github.com/gatsbyjs/gatsby/blob/e85d62f1779e353eaac1753211629a26d123e26c/packages/gatsby/src/schema/schema.js#L354-L390","documentation":"Error \"Plugin `${plugin.name}` has customized the GraphQL type `${typeComposer.getTypeName()}`, which has already been defined by the plugin `${typeOwner}`. This could potentially cause conflicts.\" thrown in gatsbyjs/gatsby.","triggerScenarios":"Thrown at packages/gatsby/src/schema/schema.js:372 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Have each plugin customize its own types only, or own the type exclusively so merges are considered safe","Rename your custom type so it does not collide with a type owned by another plugin","If the merge is intentional, suppress by defining the type from the default-site-plugin or by making the plugin the type owner"],"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-14T00:17:10.932Z"}