{
  "id": 18107493,
  "title": "I told readers to date a Vercel deploy by reading two headers, and both of them moved without a deploy",
  "url": "https://urgent.news/2026/11/04/i-told-readers-to-date-a-vercel-deploy-by-reading-two-headers-and",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-11-04T10:49:39.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/daniel_pertu/i-told-readers-to-date-a-vercel-deploy-by-reading-two-headers-and-both-of-them-moved-without-a-3gne"
  },
  "original_language": "en",
  "account": "On 31 October, the author published a post about the three caches in front of PubTrivia's 72 public pages. They ended the section with a tip to read the age header to determine when a Vercel site last shipped. The age header reported about 1,052,000 seconds or 12.2 days, matching the last deploy. However, when the author re-ran the same sweep, nothing had shipped since 18 October.\n\nThe age header was supposed to be a deployment log, but it now pointed at a Sunday evening three weeks after the build. The trick was incorrect, and the investigation revealed something more useful. The deploy was the old one, as the git log ended at 18 October. Every asset URL on every page still carried the same deployment ID. The cache object had moved, with 70 pages showing HIT and 62 distinct ages from 79,333 seconds to 226,655 seconds. The date header represented the moment the origin generated the page, while age showed how long ago that was. The date plus age was simply the current time, not when the page was built.\n\nThe ETag, which was printed in the previous post, was already dead. If the build had not changed, a prerendered page should be the same bytes it was last week, and the validator should still match. However, the ETag had changed while the content remained the same. The chain was that the edge evicted an object after a few days, Vercel re-rendered the page, the trace ID was fresh, the hash was new, and returning readers got a 82 KB response instead of a 304. The content had not changed since September; only the receipt had.",
  "summary": "On 31 October I published a post about the three caches sitting in front of PubTrivia's 72 public pages, and I ended one section with a tip: if you want to know when a Vercel site last shipped and you cannot see its dashboard, read the age header. Every prerendered page was reporting about 1,052,000 seconds, which is 12.2 days, which lined up neatly with our last deploy. I re-ran the identical…",
  "key_points": [
    "Author suggested dating Vercel deploys by reading two headers",
    "Age header reported 12.2 days since last deploy, but deployment log showed 18 October",
    "ETag changed while content remained same, causing fresh responses for returning readers"
  ],
  "editors_take": "The mismatch between cached headers and deployment logs reveals how automated re-rendering at the edge can invalidate traditional caching signals even when the underlying content remains completely unchanged.",
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}