In my strategy, I check to see if there is an option chain for a symbol before doing any logic that day, and if there was none, then log an error. I noticed that for a period of time (5+ months) the strategy did nothing and I see it is because there is no data for that period for that symbol. I would expect on those days that this call would return false:

OptionChain chain; if (CurrentSlice.OptionChains.TryGetValue(OptionSymbol, out chain))

But it isn't, I assume it is a stale chain from the last known good one.

Is there a clean way to detect if there is no data for a given day without having to see that I am not receiving any bar or quote data for some period of time?

I am explicitly setting fill forward to false for the security so not sure why the chain still shows up.