Impacted versions: 11
Tested on Runbot:http://335814-11-0-a7d9d9.runbot16.odoo.com/web?#id=67&view_type=form&model=ir.module.module&action=31
Steps to reproduce: Uninstall MRP module --> Install MRP module
Current behavior:
File "/home/odoo/runbot/runbot/runbot/static/build/335814-11-0-a7d9d9/odoo/addons/stock/models/stock_production_lot.py", line 48, in write
'This would lead to inconsistencies in your stock.'
odoo.tools.convert.ParseError: "You are not allowed to change the product linked to a serial or lot number if some stock moves have already been created with that number. This would lead to inconsistencies in your stock.
" while parsing /home/odoo/runbot/runbot/runbot/static/build/335814-11-0-a7d9d9/odoo/addons/mrp/data/mrp_demo.xml:419, near
<record id="lot_product_27_0" model="stock.production.lot">
<field name="name">0000000000030</field>
<field name="product_id" ref="product.product_product_27"/>
</record>

Expected behavior: Module Should be installed
Video/Screenshot link (optional):
I'm going to call you the "re-install man" :stuck_out_tongue_closed_eyes:
Happens on v10 too but the traceback is different.
EDIT: only with demo datas
Traceback (most recent call last):
File "/home/julien/Projects/odoo-community/odoo/http.py", line 642, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/home/julien/Projects/odoo-community/odoo/http.py", line 684, in dispatch
result = self._call_function(**self.params)
File "/home/julien/Projects/odoo-community/odoo/http.py", line 334, in _call_function
return checked_call(self.db, *args, **kwargs)
File "/home/julien/Projects/odoo-community/odoo/service/model.py", line 101, in wrapper
return f(dbname, *args, **kwargs)
File "/home/julien/Projects/odoo-community/odoo/http.py", line 327, in checked_call
result = self.endpoint(*a, **kw)
File "/home/julien/Projects/odoo-community/odoo/http.py", line 942, in __call__
return self.method(*args, **kw)
File "/home/julien/Projects/odoo-community/odoo/http.py", line 507, in response_wrap
response = f(*args, **kw)
File "/home/julien/Projects/odoo-community/addons/web/controllers/main.py", line 899, in call_button
action = self._call_kw(model, method, args, {})
File "/home/julien/Projects/odoo-community/addons/web/controllers/main.py", line 887, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "/home/julien/Projects/odoo-community/odoo/api.py", line 689, in call_kw
return call_kw_multi(method, model, args, kwargs)
File "/home/julien/Projects/odoo-community/odoo/api.py", line 680, in call_kw_multi
result = method(recs, *args, **kwargs)
File "/home/julien/Projects/odoo-community/odoo/addons/base/module/module.py", line 413, in button_immediate_install
return self._button_immediate_function(type(self).button_install)
File "/home/julien/Projects/odoo-community/odoo/addons/base/module/module.py", line 495, in _button_immediate_function
modules.registry.Registry.new(self._cr.dbname, update_module=True)
File "/home/julien/Projects/odoo-community/odoo/modules/registry.py", line 83, in new
odoo.modules.load_modules(registry._db, force_demo, status, update_module)
File "/home/julien/Projects/odoo-community/odoo/modules/loading.py", line 377, in load_modules
loaded_modules, update_module, models_to_check)
File "/home/julien/Projects/odoo-community/odoo/modules/loading.py", line 270, in load_marked_modules
perform_checks=perform_checks, models_to_check=models_to_check
File "/home/julien/Projects/odoo-community/odoo/modules/loading.py", line 185, in load_module_graph
_load_data(cr, module_name, idref, mode, kind='demo')
File "/home/julien/Projects/odoo-community/odoo/modules/loading.py", line 96, in _load_data
tools.convert_file(cr, module_name, filename, idref, mode, noupdate, kind, report)
File "/home/julien/Projects/odoo-community/odoo/tools/convert.py", line 845, in convert_file
convert_xml_import(cr, module, fp, idref, mode, noupdate, report)
File "/home/julien/Projects/odoo-community/odoo/tools/convert.py", line 915, in convert_xml_import
obj.parse(doc.getroot(), mode=mode)
File "/home/julien/Projects/odoo-community/odoo/tools/convert.py", line 796, in parse
self.parse(rec, mode)
File "/home/julien/Projects/odoo-community/odoo/tools/convert.py", line 799, in parse
self._tags[rec.tag](rec, de, mode=mode)
File "/home/julien/Projects/odoo-community/odoo/tools/convert.py", line 343, in _tag_function
_eval_xml(self, rec, env)
File "/home/julien/Projects/odoo-community/odoo/tools/convert.py", line 191, in _eval_xml
return odoo.api.call_kw(model, method, args, {})
File "/home/julien/Projects/odoo-community/odoo/api.py", line 689, in call_kw
return call_kw_multi(method, model, args, kwargs)
File "/home/julien/Projects/odoo-community/odoo/api.py", line 680, in call_kw_multi
result = method(recs, *args, **kwargs)
File "/home/julien/Projects/odoo-community/addons/stock/models/stock_inventory.py", line 169, in action_done
self.action_check()
File "/home/julien/Projects/odoo-community/addons/stock/models/stock_inventory.py", line 187, in action_check
inventory.mapped('move_ids').unlink()
File "/home/julien/Projects/odoo-community/addons/stock/models/stock_move.py", line 935, in unlink
raise UserError(_('You can only delete draft moves.'))
ParseError: "You can only delete draft moves.
" while parsing /home/julien/Projects/odoo-community/addons/mrp/data/mrp_demo.xml:536, near
<function model="stock.inventory" name="action_done" eval="[[ref('stock_inventory_product_laptop_charger'), ref('stock_inventory_product_laptop_keypad')]]"/>
Related Issue https://github.com/odoo/odoo/issues/29694
Most helpful comment
I'm going to call you the "re-install man" :stuck_out_tongue_closed_eyes: