sveltejs/kit · error
Cannot call query.live '${__.name}' while prerendering, as p
Error message
Cannot call query.live '${__.name}' while prerendering, as prerendered pages need static data. Use 'prerender' from $app/server instead What it means
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.
Source
Thrown at packages/kit/src/runtime/app/server/remote/query.js:195
const __ = {
type: 'query_live',
id: '',
name: '',
run: (event, state, arg) => run(event, state, () => validate(arg)),
validate,
bind(payload, validated_arg) {
const { event, state } = get_request_store();
return create_live_query_resource(__, payload, event, state, () =>
run(event, state, () => validated_arg)
);
}
};
/** @type {RemoteLiveQueryFunction<Input, Output> & { __: RemoteQueryLiveInternals }} */
const wrapper = (arg) => {
if (prerendering) {
throw new Error(
`Cannot call query.live '${__.name}' while prerendering, as prerendered pages need static data. Use 'prerender' from $app/server instead`
);
}
const { event, state } = get_request_store();
const payload = stringify_remote_arg(arg);
return create_live_query_resource(__, payload, event, state, () =>
run(event, state, () => validate(arg))
);
};
Object.defineProperty(wrapper, '__', { value: __ });
return wrapper;
}
/**View on GitHub (pinned to 03f1687fe6)
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
Example fix
// before
import { getLivePrice } from './remote.query.js';
const price = await getLivePrice(id);
// after
import { prerender } from '$app/server';
const price = await prerender(() => getLivePrice(id)); Defensive patterns
Strategy: validation
Validate before calling
import { prerendering } from '$app/environment';
if (prerendering) {
throw new Error('wrap query.live in prerender()');
} Type guard
null
Try / catch
null
Prevention
- 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
When it happens
Trigger: Calling a server function created with query.live(...) directly (not via prerender()) from code executing during a prerender build.
Common situations: 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.
Related errors
- Cannot call query '${__.name}' while prerendering, as preren
- Cannot call query.batch '${__.name}' while prerendering, as
- Cannot access url.${property} on a page with prerendering en
- ${prerendered.error}
- query.live '${__.name}' did not yield a value
AI-assisted analysis of sveltejs/kit@03f1687fe6 (2026-09-02).
Data as JSON: /api/errors/813a7d57c61eb743.
Report an issue: GitHub.