Object that should be cacheable is not being cached
Object contains an HTTP Vary header
Resolution
The presence of a "Vary" header with a value anything other than "Accept-encoding" will make the response non-cacheable regardless of other cache-control headers that might be present.