sveltejs/kit · error

${event.route.id} is not prerenderable

Error message

${event.route.id} is not prerenderable

What it means

Crawler-time error in the endpoint renderer: while prerendering, a page that was reached by the crawler (depth > 0) fetched this endpoint, but the endpoint does not opt into prerendering (no `export const prerender` and not covered by the default). Dependencies of a prerendered page must themselves be prerenderable, so the build aborts.

Source

Thrown at packages/kit/src/runtime/server/endpoint.js:40

	if (!handler) {
		return method_not_allowed(mod, method);
	}

	const prerender = mod.prerender ?? state.prerender_default;

	if (
		prerender &&
		/** @type {import('types').HttpMethod[]} */ (BODY_DEPENDENT_METHODS).some(
			(method) => mod[method]
		)
	) {
		throw new Error('Cannot prerender endpoints with body-dependent methods');
	}

	if (state.prerendering && !state.prerendering.inside_reroute && !prerender) {
		if (state.depth > 0) {
			// if request came from a prerendered page, bail
			throw new Error(`${event.route.id} is not prerenderable`);
		} else {
			// if request came direct from the crawler, signal that
			// this route cannot be prerendered, but don't bail
			return new Response(undefined, { status: 204 });
		}
	}

	try {
		const response = await with_request_store({ event, state }, () =>
			handler(/** @type {import('@sveltejs/kit').RequestEvent<Record<string, any>>} */ (event))
		);

		if (!(response instanceof Response)) {
			throw new Error(
				`Invalid response from route ${event.url.pathname}: handler should return a Response object`
			);
		}

View on GitHub (pinned to 03f1687fe6)

Solutions

  1. Add `export const prerender = true;` to the endpoint module
  2. Set `export const prerender = false;` on the page that depends on it so the page is no longer prerendered
  3. Configure kit.prerender.entries/options to cover the dependency appropriately
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at packages/kit/src/runtime/server/endpoint.js:40 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of sveltejs/kit@03f1687fe6 (2026-09-02). Data as JSON: /api/errors/49fa7db409c5989e. Report an issue: GitHub.