Prompt caching returns cached_tokens=0 intermittently — same static prefix, same prompt_cache_key

With the 24h retention, now forced to be the default unless you manually change it back, and the only option on GPT-5.5, OpenAI has seemingly broken any previous promise that partial matches would actually result in a cache hit.

The only thing that is reliably working is continuously growing an unaltered input with new messages. Then with that, you may even need to discriminate yourself with your own hit-breaking by using the prompt cache key API parameter per growing singular chat session, lest the matching be routed but broken for you.

You can read the full content of a longer forum topic: what OpenAI will not address or respond to:

gpt-5.6 will have you pay for explicit cache store:

GPT‑5.6 also introduces more predictable prompt caching, including support for explicit cache breakpoints and a 30-minute minimum cache life. For GPT‑5.6 and later models, cache writes are billed at 1.25x the model’s uncached input rate, while cache reads continue to receive the 90% cached-input discount.

So: it doesn’t say that an input is itself a “write” or needs a parameter to pay more to activate any cache, or if you have to pay 1.25x in parallel by new method for 30 minutes of 0.1x, or if all inputs are increased in a hidden-fee manner by +0.25x. What is claimed is that you will have to do “explicit” work - and that there is not hint of a permanent cache storage and retrieval by ID (ala Gemini.)