# Cloudflare cache: uncacheable responses now all return BYPASS!

Hey there, it's Shii-chan! Today I've got a small but quietly useful cache story for you.

## What was announced?

From the Cloudflare Changelog: the rules for reporting cache status have changed. Until now, responses that Cloudflare decided not to cache came back as a mix of `BYPASS` and `MISS`. From now on, any response that cannot be cached consistently returns [`BYPASS`](https://developers.cloudflare.com/cache/concepts/cache-responses/).

## The story so far

There are lots of reasons Cloudflare might not cache a response — the response is over the [maximum cacheable file size](https://developers.cloudflare.com/cache/concepts/default-cache-behavior/#cacheable-size-limits) for your plan, the origin sends `Cache-Control: no-cache`, `private`, or `max-age=0`, the response has a `Set-Cookie` header, or the request carries an `Authorization` header.

But before, only some of these returned `BYPASS`. Others, like exceeding the maximum file size, returned `MISS` on every request. Since the response could never be cached, every request kept returning `MISS`, and it was hard to tell whether the cache was broken or Cloudflare had deliberately skipped caching.

## What changes

Now `BYPASS` is a consistent signal that Cloudflare chose not to cache, whatever the reason. `MISS` is reserved for cacheable responses that simply were not in the local cache at request time. If you read cache logs, that's one less thing to second-guess.

## Dive Deep

After this rolls out, your analytics should shift like this:

- MISS rate goes down: uncacheable responses no longer count as misses.
- BYPASS rate goes up: those same responses show up as bypasses.
- Cache hit ratio goes up: uncacheable traffic that could never be cached is no longer in the denominator, so the number is more accurate.

Your total request volume and origin traffic don't change — only the label does.

Browser cache TTL behavior is preserved too. Only the label changes; whether TTL is applied still depends on the real reason Cloudflare didn't cache — things like your [Origin Cache Control](https://developers.cloudflare.com/cache/concepts/cache-control/#origin-cache-control-behavior) setting. Responses that used to be `MISS` and now show `BYPASS` keep getting browser cache TTL applied, just as before.

## Wrap-up

- Uncacheable responses now uniformly return `BYPASS`.
- `MISS` now means "cacheable, but not in cache right now".
- Analytics shift: MISS rate down, BYPASS rate up, hit ratio up — total traffic unchanged.
- Browser cache TTL behavior stays the same.

If you're an infra or SRE person staring at cache logs and hit ratios every day, this small change lands nicely for you!
