sveltejs/kit · error
Cannot prerender endpoints with body-dependent methods
Error message
Cannot prerender endpoints with body-dependent methods
What it means
Prerender validation in the endpoint renderer: the endpoint module opted into prerendering but also defines body-dependent methods (POST/PUT/PATCH/DELETE). Prerendering only captures responses to GET/HEAD requests; methods that consume a request body cannot be pre-rendered, so such an endpoint cannot be prerendered at all.
Source
Thrown at packages/kit/src/runtime/server/endpoint.js:34
let handler = mod[method] || mod.fallback;
if (method === 'HEAD' && !mod.HEAD && mod.GET) {
handler = mod.GET;
}
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))
);
View on GitHub (pinned to 03f1687fe6)
Solutions
- Remove `export const prerender = true` from endpoints that define POST/PUT/PATCH/DELETE handlers
- Split the GET logic into its own prerenderable +server.js file and keep mutative methods in a non-prerendered endpoint
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at packages/kit/src/runtime/server/endpoint.js:34 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/28146836ba93cd91.
Report an issue: GitHub.