Skip to content
Postmortem

The rule that had to be first

A cache config listed its catch-all last, one comment claimed 'a later rule wins', and the build shipped zero immutable chunk files. One curl found it.

Beginner1 min read (computed · recorded 6)updated 2026-09-12cachingorderingpostmortem

by Motif Editors

revised 2026-09-12First publication in the suggestions-100 backlog batch.

Part 3 of 6 in How a build tells the truthWhat a build cannot seeRecorded numbers need labels

Key takeaways
  • Header rules apply in order; the catch-all must lose, so it must be listed last.
  • The fix is verified with one curl against one fingerprinted chunk.
  • The table on the caching page is the config, so they cannot disagree.

Zero of fifty-eight

The fingerprinted chunk filenames are supposed to be immutable — cache them for a year, because a changed file is a changed URL. The audit counted how many built responses actually carried the immutable marker: zero. Every chunk answered with the catch-all rule, because the catch-all was listed first and won everything.

How one curl found it

The fix was one curl against one chunk, and then a gate: the harness now fetches every rule the caching page documents and holds the response headers to them. The table on the caching page, the config in the repo and the wire answers are the same statement in three places, checked to stay identical.

Practise the lesson

Theory sticks when you ship it. These original Motif assets put this guide's lesson to work — open one and copy it into your own page.