What a the reasons why a Subscription Contract or Selling Plan could be invalid

I’m currently working on a subscription application and I’m implementing detailed error messaging to provide the user with accurate information about errors.

With that being said Im looking for a list of reason why a Subscription Contract or a Selling plan could be invalid. For example I know that if a contract contains a deleted product variant the contract would be invalid. What are the other reasons that would apply?