Description
After publishing @epdoc/datetime@4.1.8 (and subsequently 4.1.9), the general meta.json at https://jsr.io/@epdoc/datetime/meta.json does not include these versions. The version-specific _meta.json files exist and return 200:
- https://jsr.io/@epdoc/datetime/4.1.8_meta.json ✅ returns 200
- https://jsr.io/@epdoc/datetime/4.1.9_meta.json ✅ returns 200
But meta.json has been serving stale content for 22+ hours:
cf-cache-status: HIT
age: ~80000s
cache-control: public, max-age=14400, s-maxage=86400, stale-while-revalidate=86400
Cache-busting with ?timestamp proves the origin has the correct data (latest: 4.1.9, includes both 4.1.8 and 4.1.9). The issue is the CDN edge cache not being purged.
Cache control mismatch
Source code at api/src/s3.rs defines:
CACHE_CONTROL_MANIFEST = "public, max-age=60, s-maxage=60, stale-while-revalidate=86400"
But the actual response uses max-age=14400, s-maxage=86400. This suggests either:
- The production deployment has different cache-control values
- Or the Cloudflare purge API call failed silently during these publishes
Impact
deno update --latest fails with:
error: Could not find version of '@epdoc/datetime' that matches specified version constraint '^4.1.9'
Since Deno's resolver reads from meta.json, new versions are invisible to all consumers until the CDN cache refreshes.
Description
After publishing @epdoc/datetime@4.1.8 (and subsequently 4.1.9), the general meta.json at https://jsr.io/@epdoc/datetime/meta.json does not include these versions. The version-specific _meta.json files exist and return 200:
But meta.json has been serving stale content for 22+ hours:
cf-cache-status: HIT
age: ~80000s
cache-control: public, max-age=14400, s-maxage=86400, stale-while-revalidate=86400
Cache-busting with ?timestamp proves the origin has the correct data (latest: 4.1.9, includes both 4.1.8 and 4.1.9). The issue is the CDN edge cache not being purged.
Cache control mismatch
Source code at api/src/s3.rs defines:
CACHE_CONTROL_MANIFEST = "public, max-age=60, s-maxage=60, stale-while-revalidate=86400"
But the actual response uses max-age=14400, s-maxage=86400. This suggests either:
Impact
deno update --latest fails with:
error: Could not find version of '@epdoc/datetime' that matches specified version constraint '^4.1.9'
Since Deno's resolver reads from meta.json, new versions are invisible to all consumers until the CDN cache refreshes.