In 95% of cases it is because you had a large context for which the cache expired.

The amount of people I see running around at 800k context and wondering why they are burning through tokens is always surprising.

Yeah. I like the way Claude Design handles this: if you come back to a chat after the cache expires, the chat UI shows a message like "start a new chat to save 300k tokens" or whatever. It's pretty nice if you're working in multiple design sessions and are quota-constrained.

Surprised they haven't brought the same UX to CC.

I have that in CC when I resume a session.

Suggests either starting from a summary, a new conversation, or keep going.