vercel/next.js · error
You have added a custom /_error page without a custom /404 p
Error message
You have added a custom /_error page without a custom /404 page. This prevents the 404 page from being auto statically optimized.\nSee here for info: https://nextjs.org/docs/messages/custom-error-no-custom-404
What it means
Error "You have added a custom /_error page without a custom /404 page. This prevents the 404 page from being auto statically optimized.\nSee here for info: https://nextjs.org/docs/messages/custom-error-no-custom-404" thrown in vercel/next.js.
Source
Thrown at packages/next/src/server/base-server.ts:3195
'Cache-Control',
'private, no-cache, no-store, max-age=0, must-revalidate'
)
}
return this.pipe(
async (ctx) => {
const response = await this.renderErrorToResponse(ctx, err)
if (this.minimalMode && res.statusCode === 500) {
throw err
}
return response
},
{ req, res, pathname, query }
)
}
private customErrorNo404Warn = execOnce(() => {
Log.warn(
`You have added a custom /_error page without a custom /404 page. This prevents the 404 page from being auto statically optimized.\nSee here for info: https://nextjs.org/docs/messages/custom-error-no-custom-404`
)
})
private async renderErrorToResponse(
ctx: RequestContext<ServerRequest, ServerResponse>,
err: Error | null
): Promise<ResponsePayload | null> {
return getTracer().trace(BaseServerSpan.renderErrorToResponse, async () => {
return this.renderErrorToResponseImpl(ctx, err)
})
}
protected async renderErrorToResponseImpl(
ctx: RequestContext<ServerRequest, ServerResponse>,
err: Error | null
): Promise<ResponsePayload | null> {
// Short-circuit favicon.ico in development to avoid compiling 404 page when the app has no favicon.ico.View on GitHub (pinned to 258b1c1bc0)
Solutions
- Add a custom pages/404.js so the 404 page can be statically optimized alongside your custom _error page.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at packages/next/src/server/base-server.ts:3188 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of vercel/next.js@258b1c1bc0 (2026-08-19).
Data as JSON: /api/errors/553e066989a0bf86.
Report an issue: GitHub.