diff --git a/.changeset/dry-ideas-ring.md b/.changeset/dry-ideas-ring.md new file mode 100644 index 000000000000..f256d7b0c6f0 --- /dev/null +++ b/.changeset/dry-ideas-ring.md @@ -0,0 +1,5 @@ +--- +'@sveltejs/kit': patch +--- + +fix: ensure cache key is consistent between client/server diff --git a/packages/kit/src/runtime/app/server/remote/query.js b/packages/kit/src/runtime/app/server/remote/query.js index 2974f7228271..22eed9a10b01 100644 --- a/packages/kit/src/runtime/app/server/remote/query.js +++ b/packages/kit/src/runtime/app/server/remote/query.js @@ -90,11 +90,10 @@ export function query(validate_or_fn, maybe_fn) { ); } - const cache = get_cache(__, state); - const key = stringify_remote_arg(arg, state.transport); - if (__.id) { - refreshes[__.id + '/' + key] = cache[key] = Promise.resolve(value); + const cache = get_cache(__, state); + const key = stringify_remote_arg(arg, state.transport); + refreshes[create_remote_cache_key(__.id, key)] = cache[key] = Promise.resolve(value); } }; diff --git a/packages/kit/src/runtime/server/page/render.js b/packages/kit/src/runtime/server/page/render.js index 178a26b23616..ff3ce32d5d4d 100644 --- a/packages/kit/src/runtime/server/page/render.js +++ b/packages/kit/src/runtime/server/page/render.js @@ -16,6 +16,7 @@ import { add_resolution_suffix } from '../../pathname.js'; import { with_request_store } from '@sveltejs/kit/internal/server'; import { text_encoder } from '../../utils.js'; import { get_global_name } from '../utils.js'; +import { create_remote_cache_key } from '../../shared.js'; // TODO rename this function/module @@ -493,7 +494,7 @@ export async function render_response({ if (!info.id) continue; for (const key in cache) { - remote[key ? info.id + '/' + key : info.id] = await cache[key]; + remote[create_remote_cache_key(info.id, key)] = await cache[key]; } }