Vercel · infra · fg-0250

Vercel never caches an API route response even though it sets Cache-Control max-age

x-vercel-cache: MISS on every request to a function

Verified 2026-10-15 · Confirmed by 0 builders · Trust 50/100

Cause

The Vercel CDN only stores function responses that carry s-maxage (or a CDN-Cache-Control or Vercel-CDN-Cache-Control header). Responses with set-cookie, private, no-store, or requests with an Authorization header are never cached, and Vercel strips s-maxage before the browser.

Fix

Return s-maxage with stale-while-revalidate, or a Vercel-CDN-Cache-Control header, and make sure the route sets no cookie.

Apply

return Response.json(data, {
  headers: { 'Cache-Control': 'public, s-maxage=300, stale-while-revalidate=60' },
});

Affects: Vercel CDN, all plans, as of October 2026

Sources

Have your agent know this before it fails

claude mcp add --transport http footgun https://getfootgun.com/api/mcp