From d73fe76c349a3b3b89e67884bb837a6b6c13f568 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Thu, 30 Oct 2025 23:02:41 +0100 Subject: [PATCH 1/2] fix: discard preload fork before creating a new one --- .changeset/shy-clocks-smoke.md | 5 +++++ packages/kit/src/runtime/client/client.js | 3 +++ 2 files changed, 8 insertions(+) create mode 100644 .changeset/shy-clocks-smoke.md diff --git a/.changeset/shy-clocks-smoke.md b/.changeset/shy-clocks-smoke.md new file mode 100644 index 000000000000..2c881c85cd2c --- /dev/null +++ b/.changeset/shy-clocks-smoke.md @@ -0,0 +1,5 @@ +--- +'@sveltejs/kit': patch +--- + +fix: discard preload fork before creating a new one diff --git a/packages/kit/src/runtime/client/client.js b/packages/kit/src/runtime/client/client.js index 673ff671270f..0fd4fda65a3e 100644 --- a/packages/kit/src/runtime/client/client.js +++ b/packages/kit/src/runtime/client/client.js @@ -514,6 +514,8 @@ async function _preload_data(intent) { // then a later one is becoming the real navigation and the preload tokens // get out of sync. if (intent.id !== load_cache?.id) { + discard_load_cache(); + const preload = {}; preload_tokens.add(preload); load_cache = { @@ -1748,6 +1750,7 @@ async function navigate({ await commit_promise; + // TODO 3.0 remote — the double tick is probably necessary because // of some store shenanigans. `settled()` and `f.commit()` // should resolve after DOM updates in newer versions From e4e3d9a443b2294baefb0a3dad2453587414fc74 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Thu, 30 Oct 2025 23:03:12 +0100 Subject: [PATCH 2/2] tidy up --- packages/kit/src/runtime/client/client.js | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/kit/src/runtime/client/client.js b/packages/kit/src/runtime/client/client.js index 0fd4fda65a3e..b04664ddc578 100644 --- a/packages/kit/src/runtime/client/client.js +++ b/packages/kit/src/runtime/client/client.js @@ -1750,7 +1750,6 @@ async function navigate({ await commit_promise; - // TODO 3.0 remote — the double tick is probably necessary because // of some store shenanigans. `settled()` and `f.commit()` // should resolve after DOM updates in newer versions