During startup, SonarQube looks for rules that have been removed (from a plugin - or when a plugin has completely been removed) and for each rule, it does some actions:
- tag the rule as "REMOVED"
- searches for the quality profiles impacted by this removal and updates them
The issue is that it tags all the rules as "REMOVED" first, and then updates the quality profiles. So if the startup process is killed during the quality profile updates, then a new startup won't update the remaining quality profiles.