gatsbyjs/gatsby · error
replaceRenderer API found in these plugins:
Error message
replaceRenderer API found in these plugins:
What it means
Startup conflict warning: more than one plugin in the flattened list implements the replaceRenderer SSR API, and gatsby only ever calls one renderer — multiple implementations fight over HTML rendering. The warning lists the offending plugin names so the user can remove or guard the extras.
Source
Thrown at packages/gatsby/src/bootstrap/load-plugins/validate.ts:517
return {
flattenedPlugins: flattenedPlugins as Array<IFlattenedPlugin>,
badExports,
}
}
export const handleMultipleReplaceRenderers = ({
flattenedPlugins,
}: {
flattenedPlugins: Array<IFlattenedPlugin>
}): Array<IFlattenedPlugin> => {
// multiple replaceRenderers may cause problems at build time
const rendererPlugins = flattenedPlugins
.filter(plugin => plugin.ssrAPIs.includes(`replaceRenderer`))
.map(plugin => plugin.name)
if (rendererPlugins.length > 1) {
if (rendererPlugins.includes(`default-site-plugin`)) {
reporter.warn(`replaceRenderer API found in these plugins:`)
reporter.warn(rendererPlugins.join(`, `))
reporter.warn(
`This might be an error, see: https://www.gatsbyjs.com/docs/debugging-replace-renderer-api/`
)
} else {
console.log(``)
reporter.error(
`Gatsby's replaceRenderer API is implemented by multiple plugins:`
)
reporter.error(rendererPlugins.join(`, `))
reporter.error(`This will break your build`)
reporter.error(
`See: https://www.gatsbyjs.com/docs/debugging-replace-renderer-api/`
)
if (process.env.NODE_ENV === `production`) process.exit(1)
}
// Now update plugin list so only final replaceRenderer will runView on GitHub (pinned to e85d62f177)
Solutions
- Keep only one replaceRenderer implementation — usually your site plugin (gatsby-node.js) or the rendering plugin, not both
- Guard the export so it only runs for the intended pages/builds
- Remove the duplicate plugin from gatsby-config.js or wrap with an env check
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at packages/gatsby/src/bootstrap/load-plugins/validate.ts:517 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/ebbdc2923a092775.
Report an issue: GitHub.