withastro/astro · critical · Error
Astro couldn't find the correct page to render, probably bec
Error message
Astro couldn't find the correct page to render, probably because it wasn't correctly mapped for SSR usage. This is an internal error, please file an issue.
What it means
An internal error thrown when the base pipeline's `getModuleForRoute` cannot find a component instance for a route because the manifest has neither a `pageMap` with the route's component nor a `pageModule`. Identical in cause to error 113 but thrown from `base-pipeline.ts` rather than `pipeline.ts`. This indicates malformed SSR build output or an adapter misconfiguration.
Source
Thrown at packages/astro/src/core/base-pipeline.ts:431
};
}
}
if (route.type === 'redirect') {
return RedirectSinglePageBuiltModule;
} else {
if (this.manifest.pageMap) {
const importComponentInstance = this.manifest.pageMap.get(route.component);
if (!importComponentInstance) {
throw new Error(
`Unexpectedly unable to find a component instance for route ${route.route}`,
);
}
return await importComponentInstance();
} else if (this.manifest.pageModule) {
return this.manifest.pageModule;
}
throw new Error(
"Astro couldn't find the correct page to render, probably because it wasn't correctly mapped for SSR usage. This is an internal error, please file an issue.",
);
}
}
}
// eslint-disable-next-line @typescript-eslint/no-empty-object-type
export interface HeadElements extends Pick<SSRResult, 'scripts' | 'styles' | 'links'> {}
export interface TryRewriteResult {
routeData: RouteData;
componentInstance: ComponentInstance;
newUrl: URL;
pathname: string;
}
View on GitHub (pinned to d081033d5f)
Solutions
- Delete `dist/` and run `astro build` fresh.
- Verify your adapter is compatible with your Astro version.
- Ensure all routes are valid `.astro` pages or endpoints.
- Remove custom integrations that modify the manifest and rebuild.
- File an Astro issue if the error persists with a minimal reproduction.
Defensive patterns
Strategy: validation
Validate before calling
function validateManifestRoutes(manifest: any): string[] {
const errors: string[] = [];
if (!manifest.pageMap && !manifest.pageModule) {
errors.push('Manifest has no pageMap or pageModule — rebuild required');
}
return errors;
} Type guard
function manifestHasPageMapping(manifest: any): boolean {
return Boolean(manifest?.pageMap || manifest?.pageModule);
} Prevention
- Rebuild from a clean dist/ directory after any config or adapter change.
- Pin adapter and Astro versions to known-compatible releases.
- Run a smoke test of the SSR server before deploying to production.
When it happens
Trigger: `getModuleForRoute(route)` is called. The manifest's `pageMap` exists but doesn't contain `route.component` (or `pageMap` is absent), and `pageModule` is also absent/falsy. The final `throw new Error(...)` fires with the 'internal error' message.
Common situations: A corrupted `dist/` from an interrupted build. An adapter generates a manifest without proper page mappings. Astro version mismatch between core and adapter. A route was added but the build output wasn't regenerated. Custom manifest manipulation by an integration.
Related errors
- Astro couldn't find the correct page to render, probably bec
- ActionCalledFromServerError
- Configured image service is not a local service
- FontFileUrlNotFound
- MissingGetFontFileRequestUrl
AI-assisted analysis of withastro/astro@d081033d5f (2026-08-12).
Data as JSON: /api/errors/3493fb35cc6f104f.
Report an issue: GitHub.