Which is better – recovery "error" message or undo user input?

I'm working on an application that allows users to drill down into the data in order to get visual chart representations.

There is the assumption that there will be cases where users are exploring the data or coming to answer a very specific question (they may have very distinct parameters defined).

We have an issue with the data quality. Some combinations of drilling down will cause nothing to display, because there is missing data.

So,

  1. Would you prevent users from selecting that combination or clearly explain what's happening when this combination happens?
  2. If preventing, would you make the drilldown options cascade? Which means if user updates a prior filter it resets all that follows which could potentially undo the users prior selections. OR Would you try to label anything where that will occur?
    1. If not preventing, would a clear explanation be sufficient? Like just update the chart to say "no data available for [these selections]". Then, if time allows build in logic to then provide steps for users to get something to display again.

Provide any research, testing, or best practices with your answers.