PRODUCTION SCENARIO
A request to Claude Sonnet 5 puts a cache breakpoint on a 700-token system prompt. Repeated identical requests report cache_creation_input_tokens and cache_read_input_tokens both at zero, and the API returns no error.
What is the most likely cause?
Answering here is anonymous. Nothing is saved unless you sign in.
Show answer and explanation
Answer: The prefix before the breakpoint is below the model's minimum length
Prompts shorter than the model's minimum cacheable length are processed without caching and no error is returned, and 700 tokens is below the 1,024-token minimum for Claude Sonnet 5, so both counters stay at zero. ttl is optional and selects the 5-minute default when omitted rather than disabling caching. The system parameter is one of the three places a breakpoint is allowed, alongside tools and messages. And a successful write reports cache_creation_input_tokens on the very first request, so no warm-up period would leave both fields empty.