gatsbyjs/gatsby · error
Plugin `${plugin.name}` has customized the GraphQL type `${t
Error message
Plugin `${plugin.name}` has customized the GraphQL type `${typeComposer.getTypeName()}`, which has already been defined by the plugin `${typeOwner}`. This could potentially cause conflicts. What it means
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.
Source
Thrown at packages/gatsby/src/schema/schema.js:372
createdFrom,
parentSpan,
}) => {
// The merge is considered safe when a user or a plugin owning the type extend this type
// TODO: add proper conflicts detection and reporting (on the field level)
const typeOwner = typeComposer.getExtension(`plugin`)
const isOverridableBuiltInType =
!typeOwner && overridableBuiltInTypeNames.has(typeComposer.getTypeName())
const isSafeMerge =
!plugin ||
plugin.name === `default-site-plugin` ||
plugin.name === typeOwner ||
typeComposer.hasExtension(`isPlaceholder`) ||
isOverridableBuiltInType
if (!isSafeMerge) {
if (typeOwner) {
report.warn(
`Plugin \`${plugin.name}\` has customized the GraphQL type ` +
`\`${typeComposer.getTypeName()}\`, which has already been defined ` +
`by the plugin \`${typeOwner}\`. ` +
`This could potentially cause conflicts.`
)
} else {
report.warn(
`Plugin \`${plugin.name}\` has customized the built-in Gatsby GraphQL type ` +
`\`${typeComposer.getTypeName()}\`. ` +
`This is allowed, but could potentially cause conflicts.`
)
}
}
if (
type instanceof ObjectTypeComposer ||
type instanceof InterfaceTypeComposer ||
type instanceof GraphQLObjectType ||View on GitHub (pinned to e85d62f177)
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
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at packages/gatsby/src/schema/schema.js:372 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of gatsbyjs/gatsby@e85d62f177 (2026-08-26).
Data as JSON: /api/errors/e7b146a19d3d03f1.
Report an issue: GitHub.