This specific outage is the equivalent of this scenario:
You have an if/then statement with N conditions in AND. You remove one condition, leaving the rest of the statement unchanged. What happens?
The answer is that if you remove one condition, your input (in this case routes) is more likely to match N-1 conditions than N, so more input is going to be processed according to the “then” clause.
The impact of course depends on the fact that these were BGP routes, advertised to the Internet,… but the problem itself is generic.
What can you do?
1) check this kind of if/then statements with special care, in order to analyze under which condition the input is processed by the “then” clause. This is exactly one of their followups [1]
2) consider adding “global”, catch-all policies acting as an additional safety net (if applicable)
3) test your changes not just syntactically. Set up a test environment with multiple routers, apply the configuration and see what happens.
[1] Adding automatic routing policy evaluation into our CI/CD pipelines that looks specifically for empty or erroneous policy terms