diff --git a/odoo/addons/base/models/ir_module.py b/odoo/addons/base/models/ir_module.py index f042dd5aa7b..70f0b1d08ec 100644 --- a/odoo/addons/base/models/ir_module.py +++ b/odoo/addons/base/models/ir_module.py @@ -605,6 +605,11 @@ class Module(models.Model): def button_uninstall(self): if 'base' in self.mapped('name'): raise UserError(_("The `base` module cannot be uninstalled")) + if not all(state == 'installed' for state in self.mapped('state')): + raise UserError(_( + "One or more of the selected modules have already been uninstalled, if you " + "believe this to be an error, you may try again later or contact support." + )) deps = self.downstream_dependencies() (self + deps).write({'state': 'to remove'}) return dict(ACTION_DICT, name=_('Uninstall'))