{"record":{"id":"813a7d57c61eb743","repo":"sveltejs/kit","slug":"cannot-call-query-live-name-while-prerende","errorCode":null,"errorMessage":"Cannot call query.live '${__.name}' while prerendering, as prerendered pages need static data. Use 'prerender' from $app/server instead","messagePattern":"Cannot call query\\.live '(.+?)' while prerendering, as prerendered pages need static data\\. Use 'prerender' from \\$app/server instead","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/kit/src/runtime/app/server/remote/query.js","lineNumber":195,"sourceCode":"\tconst __ = {\n\t\ttype: 'query_live',\n\t\tid: '',\n\t\tname: '',\n\t\trun: (event, state, arg) => run(event, state, () => validate(arg)),\n\t\tvalidate,\n\t\tbind(payload, validated_arg) {\n\t\t\tconst { event, state } = get_request_store();\n\n\t\t\treturn create_live_query_resource(__, payload, event, state, () =>\n\t\t\t\trun(event, state, () => validated_arg)\n\t\t\t);\n\t\t}\n\t};\n\n\t/** @type {RemoteLiveQueryFunction<Input, Output> & { __: RemoteQueryLiveInternals }} */\n\tconst wrapper = (arg) => {\n\t\tif (prerendering) {\n\t\t\tthrow new Error(\n\t\t\t\t`Cannot call query.live '${__.name}' while prerendering, as prerendered pages need static data. Use 'prerender' from $app/server instead`\n\t\t\t);\n\t\t}\n\n\t\tconst { event, state } = get_request_store();\n\t\tconst payload = stringify_remote_arg(arg);\n\n\t\treturn create_live_query_resource(__, payload, event, state, () =>\n\t\t\trun(event, state, () => validate(arg))\n\t\t);\n\t};\n\n\tObject.defineProperty(wrapper, '__', { value: __ });\n\n\treturn wrapper;\n}\n\n/**","sourceCodeStart":177,"sourceCodeEnd":213,"githubUrl":"https://github.com/sveltejs/kit/blob/03f1687fe612ce3d2d9131139b5b188d9cf90c64/packages/kit/src/runtime/app/server/remote/query.js#L177-L213","documentation":"Live remote queries stream values and cannot run during prerendering, since prerendered pages require static, captured data. Direct invocation of a query.live function while prerendering throws this error; use prerender() to capture the first value.","triggerScenarios":"Calling a server function created with query.live(...) directly (not via prerender()) from code executing during a prerender build.","commonSituations":"Using live queries in prerendered routes; adding prerender = true to a page using real-time data; forgetting to wrap the call after switching query to query.live.","solutions":["Wrap the live query in prerender(() => myLiveQuery(arg)) to capture its first value at build time","Remove prerender = true from routes that need live/streaming data","Switch back to plain query(...) if a static snapshot suffices"],"exampleFix":"// before\nimport { getLivePrice } from './remote.query.js';\nconst price = await getLivePrice(id);\n// after\nimport { prerender } from '$app/server';\nconst price = await prerender(() => getLivePrice(id));","handlingStrategy":"validation","validationCode":"import { prerendering } from '$app/environment';\nif (prerendering) {\n  throw new Error('wrap query.live in prerender()');\n}","typeGuard":"null","tryCatchPattern":"null","preventionTips":["Never call query.live directly in prerendered code paths","Document that live queries need prerender() capture for SSG","Audit routes with prerender = true for live data usage"],"tags":["prerendering","live-query","streaming","ssg"],"backgroundTag":"prerender-forbidden-api-call","analyzedSha":"03f1687fe612ce3d2d9131139b5b188d9cf90c64","analyzedAt":"2026-09-02T02:01:50.504Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-09T06:17:21.866Z"}