From 5df2a638b019ffbe8631b9e42a99215dda1a7d46 Mon Sep 17 00:00:00 2001 From: David Roizenman Date: Fri, 19 Dec 2025 02:37:31 -0800 Subject: [PATCH 1/2] fix: only track block effects when deferred --- packages/svelte/src/internal/client/reactivity/batch.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/svelte/src/internal/client/reactivity/batch.js b/packages/svelte/src/internal/client/reactivity/batch.js index 6f941c7ff231..49928d7104de 100644 --- a/packages/svelte/src/internal/client/reactivity/batch.js +++ b/packages/svelte/src/internal/client/reactivity/batch.js @@ -237,7 +237,10 @@ export class Batch { } else if (async_mode_flag && (flags & (RENDER_EFFECT | MANAGED_EFFECT)) !== 0) { target.render_effects.push(effect); } else if (is_dirty(effect)) { - if ((effect.f & BLOCK_EFFECT) !== 0) this.#dirty_effects.add(effect); + // only track block effects when deferred to prevent infinite HMR loops (#17369) + if ((effect.f & BLOCK_EFFECT) !== 0 && this.is_deferred()) { + this.#dirty_effects.add(effect); + } update_effect(effect); } From 8f8e3edd6e83e4d712264380d4e89502c19c8a5d Mon Sep 17 00:00:00 2001 From: David Roizenman Date: Fri, 19 Dec 2025 02:53:42 -0800 Subject: [PATCH 2/2] add changeset --- .changeset/rotten-seals-train.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/rotten-seals-train.md diff --git a/.changeset/rotten-seals-train.md b/.changeset/rotten-seals-train.md new file mode 100644 index 000000000000..efbaaba471d9 --- /dev/null +++ b/.changeset/rotten-seals-train.md @@ -0,0 +1,5 @@ +--- +'svelte': patch +--- + +fix: hmr infinite loop with await in template (#17369)