{"record":{"id":"28146836ba93cd91","repo":"sveltejs/kit","slug":"cannot-prerender-endpoints-with-body-dependent-met","errorCode":null,"errorMessage":"Cannot prerender endpoints with body-dependent methods","messagePattern":"Cannot prerender endpoints with body-dependent methods","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/kit/src/runtime/server/endpoint.js","lineNumber":34,"sourceCode":"\tlet handler = mod[method] || mod.fallback;\n\n\tif (method === 'HEAD' && !mod.HEAD && mod.GET) {\n\t\thandler = mod.GET;\n\t}\n\n\tif (!handler) {\n\t\treturn method_not_allowed(mod, method);\n\t}\n\n\tconst prerender = mod.prerender ?? state.prerender_default;\n\n\tif (\n\t\tprerender &&\n\t\t/** @type {import('types').HttpMethod[]} */ (BODY_DEPENDENT_METHODS).some(\n\t\t\t(method) => mod[method]\n\t\t)\n\t) {\n\t\tthrow new Error('Cannot prerender endpoints with body-dependent methods');\n\t}\n\n\tif (state.prerendering && !state.prerendering.inside_reroute && !prerender) {\n\t\tif (state.depth > 0) {\n\t\t\t// if request came from a prerendered page, bail\n\t\t\tthrow new Error(`${event.route.id} is not prerenderable`);\n\t\t} else {\n\t\t\t// if request came direct from the crawler, signal that\n\t\t\t// this route cannot be prerendered, but don't bail\n\t\t\treturn new Response(undefined, { status: 204 });\n\t\t}\n\t}\n\n\ttry {\n\t\tconst response = await with_request_store({ event, state }, () =>\n\t\t\thandler(/** @type {import('@sveltejs/kit').RequestEvent<Record<string, any>>} */ (event))\n\t\t);\n","sourceCodeStart":16,"sourceCodeEnd":52,"githubUrl":"https://github.com/sveltejs/kit/blob/03f1687fe612ce3d2d9131139b5b188d9cf90c64/packages/kit/src/runtime/server/endpoint.js#L16-L52","documentation":"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.","triggerScenarios":"Thrown at packages/kit/src/runtime/server/endpoint.js:34 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","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"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"03f1687fe612ce3d2d9131139b5b188d9cf90c64","analyzedAt":"2026-09-02T02:01:50.504Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-09T06:17:21.866Z"}