Deemwar Monads & Abstractions

The Page Still Old

Source: HTTP caching, by MDN Web Docs

On 2026-09-13 a site deploy reported done. The index page changed, and the example sub-pages kept serving old links from the CDN cache. Our publish script now fetches the served page with a cache-buster and looks for the exact headline.

2026-09-13 the stale sub-pages
6 retries before the publish fails

What happened

  1. 1

    The deploy said done

    deploy log

    We shipped a site update and the deploy was verified. The index page showed the change.

  2. 2

    Sub-pages stayed old

    CDN cache

    The example sub-pages kept serving old links from the CDN cache. A cached page is still served with status 200, so a check that only looks at the status stays green.

  3. 3

    Check the live page

    publish script

    The publish script fetches the served page with a cache-buster on the URL (?v=<timestamp>) and greps for the exact <h1> of the page title.

  4. headline missing → retry, up to 6 times · then the publish fails

The check

deploy logsays done
?v=<timestamp>skips the cached copy
grep the h1retry up to 6×
shippedthe live page shows it

What to check after your own deploy

CheckWhy
Fetch the served page with a cache-buster query stringThe request asks for a URL the CDN has not cached yet.
Look for the exact headline you just shippedA status code alone stays 200 on a cached old page.
Check the sub-pages tooIn our case the index was new and the sub-pages were stale.

Read more

MDN Web Docs: HTTP caching.

Sources: the 2026-09-13 stale sub-pages and the cache-buster rule are from our incident log; the publish check (cache-buster, exact h1, 6 retries) is from our site lane's publish script notes. HTTP caching background is from MDN Web Docs.