What may be causing "fails the check integrity"?
Possible reasons
Some reasons (pretty sure it is an incomplete list ...) that may help to pinpoint the reason for this typical message are like so:

Some module is missing &quot;now&quot; (which was there when the rule was added). It could well be a recently disabled, or uninstalled module.
The rule (or Rules Component) refers (in a Rules Condition or Rules Action) to a machine name of a field that is &quot;no longer there&quot;.
The rule (or Rules Component) refers to a Rules Component that is no longer there, or, as a variation, something changed in a Rules Component (eg the data type of a parameter) so that it is no longer compatible with the way some Rule is trying to execute that Rules Component.
The rule (or Rules Component) refers to a content type (or more generic an entity type) that is no longer there, or a role that was removed.
The rule (or Rules Component) has a Rules Condition or Rules Action, which is provided by some module, based on some logic in that module. A good example of this can be found in the Content Access module: the ACL module seems to be a weak module dependency of the Content Access module, i.e. the Rules Action with machine name content_access_action_user_grant is only available if, and for as long as, ACL is enabled (if you disable the ACL module, then any rule that has such content_access_action_user_grant action will show such &quot;... fails the integrity check&quot;.

Possible resolutions
Depending on what the actual reason is, these are possible remedies for it:

Re-enable recently disabled modules:

if any such module adds an extra content type with some related fields, and any of your rules still refer to them, then that would cause the typical error message.
if the existence of any such module is used to provide some extra Rules Condition or Rules Action, then any of your rules that still refer to those conditions/actions would cause the typical error message.


If you know/remember which entity some field (which got deleted) referred to, then manually adding that field again (with identical machine name) should make the error message go away.

...