From 9a27dc2f8592705d10fee528b92fc606ff328c80 Mon Sep 17 00:00:00 2001 From: Will Taylor Date: Wed, 14 Jan 2026 12:37:46 -0500 Subject: [PATCH] WC-4389 Reduce ttl to 10s for asset-worker --- .changeset/bright-eggs-draw.md | 5 +++++ packages/workers-shared/asset-worker/src/utils/kv.ts | 4 ++-- packages/workers-shared/asset-worker/tests/kv.test.ts | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) create mode 100644 .changeset/bright-eggs-draw.md diff --git a/.changeset/bright-eggs-draw.md b/.changeset/bright-eggs-draw.md new file mode 100644 index 000000000000..220191be2c3f --- /dev/null +++ b/.changeset/bright-eggs-draw.md @@ -0,0 +1,5 @@ +--- +"@cloudflare/workers-shared": patch +--- + +The asset-worker now uses a shorter 10-second TTL for cached assets, down from 60 seconds. This ensures that asset updates are reflected more quickly during development and deployment, reducing the window where stale assets might be served. diff --git a/packages/workers-shared/asset-worker/src/utils/kv.ts b/packages/workers-shared/asset-worker/src/utils/kv.ts index e55af80a0a60..61e11755a6ff 100644 --- a/packages/workers-shared/asset-worker/src/utils/kv.ts +++ b/packages/workers-shared/asset-worker/src/utils/kv.ts @@ -23,11 +23,11 @@ export async function getAssetWithMetadataFromKV( ); if (asset.value === null) { - // Don't cache a 404 for a year by re-requesting with a minimum cacheTtl + // Don't cache a 404 for a year by re-requesting with a short cacheTtl const retriedAsset = await assetsKVNamespace.getWithMetadata(assetKey, { type: "stream", - cacheTtl: 60, // Minimum value allowed + cacheTtl: 10, }); if (retriedAsset.value !== null && sentry) { diff --git a/packages/workers-shared/asset-worker/tests/kv.test.ts b/packages/workers-shared/asset-worker/tests/kv.test.ts index ef6df342b9f7..6db6dbeb19ba 100644 --- a/packages/workers-shared/asset-worker/tests/kv.test.ts +++ b/packages/workers-shared/asset-worker/tests/kv.test.ts @@ -78,7 +78,7 @@ describe("[Asset Worker] Fetching assets from KV", () => { expect(spy).toHaveBeenCalledTimes(2); }); - it("should retry on 404 and cache with 30s ttl", async () => { + it("should retry on 404 with short cache ttl", async () => { let attempts = 0; spy.mockImplementation(() => { if (attempts++ === 0) {