Vercel Cache Reason: Stop Treating MISS, BYPASS, and STALE as One Cache Problem

Tech
Views 17

A cache status tells you what happened; Cache Reason explains why. Since July 17, 2026, Vercel runtime logs expose the reason when a cacheable response was not a fresh hit, letting teams split capacity, policy, and revalidation incidents.

Vercel Cache Reason: Stop Treating MISS, BYPASS, and STALE as One Cache Problem
A workflow from cache status and reason to an operational response

Why status needs a reason

Reasons apply to CDN-cacheable responses such as ISR, Partial Prerendering, and functions with cache headers. A fully dynamic response can legitimately have no reason.

StatusTypical reasonOperational meaning
MISSCold · Request collapsed · ErrorOrigin generated because no usable cache entry existed
BYPASSDraft Mode · Prerender Bypass · CrawlerCache intentionally skipped
STALETime-based · Tag invalidation · Revalidation errorOld response served while refreshing
REVALIDATEDTag-based deletionForeground regeneration after deletion

Operational checklist

Treat MISS + Cold as a prerendering, lifetime, or regional eviction question.

Do not count BYPASS + Draft Mode/Crawler as an automatic cache regression.

Investigate origin failures when STALE carries Revalidation error while users still receive the last good response.

Group vercel.request.count by cache_reason to move from one request to fleet-level evidence.

Bottom line

The goal is not one maximum HIT rate. Measure latency, origin load, freshness, and hidden revalidation failure per reason.

Official sources