gatsbyjs/gatsby · error
Plugin `${plugin.name}` has customized the built-in Gatsby G
Error message
Plugin `${plugin.name}` has customized the built-in Gatsby GraphQL type `${typeComposer.getTypeName()}`. This is allowed, but could potentially cause conflicts. What it means
Fires in mergeTypes when a plugin customizes a built-in Gatsby type (e.g. Query, File) that has no owning plugin but is on the overridableBuiltInTypeNames list. It is an advisory warning: the merge is allowed, but Gatsby cannot guarantee no field-level conflicts will result, so the plugin is told its changes may clash with future or concurrent customizations.
Source
Thrown at packages/gatsby/src/schema/schema.js:379
!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 ||
type instanceof GraphQLInterfaceType
) {
mergeFields({ typeComposer, fields: type.getFields() })
type.getInterfaces().forEach(iface => typeComposer.addInterface(iface))
}
if (View on GitHub (pinned to e85d62f177)
Solutions
- Avoid customizing built-in types; define a new type or extend types you own instead
- If overriding the built-in type is intentional, acknowledge the warning and verify the merged schema contains the expected fields
- Override the field in question with createResolvers instead of redefining the whole type
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at packages/gatsby/src/schema/schema.js:379 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/cbc87285487f7ee4.
Report an issue: GitHub.