SIGN IN SIGN UP

fix(cache-purge): spread SQLite bindings in BucketCachePurge alarm so tag purges run (#1289)

fix(cache-purge): spread SQLite bindings in BucketCachePurge alarm

SqlStorage.exec(query, ...bindings) is variadic over its bindings. alarm()
passed the tags as a single array, so a multi-tag DELETE ... WHERE tag IN
(?, ?, ...) had 1 binding for N placeholders and threw "Wrong number of
parameter bindings" on every flush. revalidateTag purges therefore never
reached the Cloudflare cache, and with bypassTagCacheOnCacheHit enabled
pages served stale until the ISR TTL expired.

Spread the bindings, normalise the INSERT to the same variadic form, and
tighten the drain-loop guard from `while (tags.length >= 0)` to `> 0`.

Fixes #1288

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
S
Soheil Fakour committed
eef243ff04790151fb1a4bc832597e2e44b40e70
Parent: 51439b1
Committed by GitHub <noreply@github.com> on 6/24/2026, 10:16:36 PM