# Release 1.12.3

**Release Date**: July 29, 2026

> **INFO**
This release adds a **`honor_vary_header`** option to the caching feature, letting the edge honor the origin `Vary` response header when deciding whether to cache. By default the edge as a service cdn template strips `Vary` and caches a single object; honoring it caches only `Vary: Accept-Encoding` compressed responses (per encoding) and treats every other `Vary` as non-cacheable.

## Caching

### Honor the origin Vary header

The `caching` feature accepts a new boolean argument, `honor_vary_header`. When `true`, the edge honors the `Vary` header on the origin response when making the cache decision. When `false` or omitted (the default), the edge strips the origin `Vary` header so the response is cacheable (only if cache directives are set).

Honoring `Vary` follows Akamai's caching rules for varying responses: a response that carries a `Vary` header is cached **only** when it is `Vary: Accept-Encoding` **and** the body is compressed (`Content-Encoding: gzip` or `br`), in which case each encoding is cached as a separate variant. Any other `Vary` value — for example `Vary: User-Agent`, `Vary: Cookie`, `Vary: Accept-Encoding, User-Agent`, or `Vary: *` — makes the response **non-cacheable**.

Use `honor_vary_header: true` to cache compressed assets per `Accept-Encoding` variant while ensuring genuinely varying (for example, per-user) responses are not served from a shared cache. `no_store` and `bypass` take precedence: if either is set, caching is short-circuited and `honor_vary_header` has no effect.

```json
{
  "delivery_config": {
    "version": "1.0",
    "onClientRequest": {
      "features": {
        "caching": {
          "rules": [
            {
              "args": {
                "ttl_seconds": 300,
                "honor_origin": true,
                "honor_vary_header": true
              },
              "matchAll": { "paths_startswith": ["/assets/"] }
            }
          ]
        }
      }
    }
  }
}
```

## Schema Changes

- Added `honor_vary_header` (boolean) to the `caching` feature `args`. Optional; defaults to off.

## Migration Guide

> **INFO**
This change is backward compatible. No breaking changes were introduced. `honor_vary_header` is optional and defaults to off, so existing tenant configurations behave exactly as before.

### Recommended Actions

- To honor the origin `Vary` header — caching compressed content per `Accept-Encoding` variant and keeping other varying responses out of the shared cache — add `"honor_vary_header": true` to the relevant caching rule's `args`.

## Resources

- [Delivery Configuration Documentation](/tenant-schemas/delivery-config)
- [Match Conditions Documentation](/tenant-schemas/match-conditions)
- [Security Configuration Documentation](/tenant-schemas/security-config)
- [Lists Reference](/tenant-schemas/lists)
- [Configuration Examples](/examples)
- [Tenant Schema (JSON)](/tenant-schema.json)

> **NOTE**
Questions or feedback? Please refer to the documentation or contact support.
