-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Open
Description
Installing website on a fresh database v18.0 enterprise causes a crash and a #500 error for the user because xml files in the enterprise module fail XML validation.
enterprise/website_appointment/views/snippets/s_appointments.xml does not use a tag inside the tag.
This is however not the only file doing so and also running odoo 18 natively instead of through the container image is possible, I assume the version of LXML lib or the configuration has something to do with it, here is the complete error message:
odoo | 2025-10-30 16:17:04,174 1 INFO odoo odoo.modules.loading: Loading module website_appointment (90/92)
odoo | 2025-10-30 16:17:04,261 1 INFO odoo odoo.modules.registry: module website_appointment: creating or updating database tables
odoo | 2025-10-30 16:17:04,421 1 INFO odoo odoo.modules.loading: loading website_appointment/data/website_data.xml
odoo | 2025-10-30 16:17:04,436 1 INFO odoo odoo.modules.loading: loading website_appointment/data/website_snippet_data.xml
odoo | 2025-10-30 16:17:04,443 1 INFO odoo odoo.modules.loading: loading website_appointment/views/appointment_type_views.xml
odoo | 2025-10-30 16:17:04,485 1 INFO odoo odoo.modules.loading: loading website_appointment/views/appointment_invite_views.xml
odoo | 2025-10-30 16:17:04,495 1 INFO odoo odoo.modules.loading: loading website_appointment/views/calendar_menus.xml
odoo | 2025-10-30 16:17:04,502 1 INFO odoo odoo.modules.loading: loading website_appointment/views/appointment_templates_appointments.xml
odoo | 2025-10-30 16:17:04,555 1 INFO odoo odoo.modules.loading: loading website_appointment/views/appointment_templates_registration.xml
odoo | 2025-10-30 16:17:04,564 1 INFO odoo odoo.modules.loading: loading website_appointment/views/appointment_templates_validation.xml
odoo | 2025-10-30 16:17:04,572 1 INFO odoo odoo.modules.loading: loading website_appointment/views/website_pages_views.xml
odoo | 2025-10-30 16:17:04,594 1 INFO odoo odoo.modules.loading: loading website_appointment/views/snippets/s_appointments.xml
odoo | 2025-10-30 16:17:04,596 1 ERROR odoo odoo.tools.convert: The XML file '/mnt/extra-addons/enterprise/website_appointment/views/snippets/s_appointments.xml' does not fit the required schema!
odoo | Traceback (most recent call last):
odoo | File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 669, in convert_xml_import
odoo | relaxng.assert_(doc)
odoo | File "src/lxml/etree.pyx", line 3682, in lxml.etree._Validator.assert_
odoo | AssertionError: Element odoo has extra content: template, line 4
odoo | 2025-10-30 16:17:04,597 1 WARNING odoo odoo.tools.convert: /mnt/extra-addons/enterprise/website_appointment/views/snippets/s_appointments.xml:4:0:ERROR:RELAXNGV:RELAXNG_ERR_EXTRACONTENT: Element odoo has extra content: template
odoo | 2025-10-30 16:17:04,597 1 INFO odoo odoo.tools.convert: Install 'jingtrang' for more precise and useful validation messages.
odoo | 2025-10-30 16:17:04,600 1 WARNING odoo odoo.modules.loading: Transient module states were reset
odoo | 2025-10-30 16:17:04,601 1 ERROR odoo odoo.modules.registry: Failed to load registry
odoo | 2025-10-30 16:17:04,606 1 INFO odoo odoo.modules.loading: loading 1 modules...
odoo | 2025-10-30 16:17:04,611 1 INFO odoo odoo.modules.loading: 1 modules loaded in 0.01s, 0 queries (+0 extra)
odoo | 2025-10-30 16:17:04,622 1 INFO odoo odoo.modules.loading: loading 88 modules...
odoo | 2025-10-30 16:17:04,669 1 INFO odoo odoo.modules.loading: 88 modules loaded in 0.05s, 0 queries (+0 extra)
odoo | 2025-10-30 16:17:04,777 1 INFO odoo odoo.modules.loading: Modules loaded.
odoo | 2025-10-30 16:17:04,781 1 INFO odoo odoo.modules.registry: Registry loaded in 0.180s
odoo | 2025-10-30 16:17:04,785 1 INFO odoo odoo.addons.base.models.ir_http: Generating routing map for key 1
odoo | 2025-10-30 16:17:04,813 1 ERROR odoo odoo.http: Exception during request handling.
odoo | Traceback (most recent call last):
odoo | File "/usr/lib/python3/dist-packages/odoo/http.py", line 2576, in __call__
odoo | response = request._serve_db()
odoo | ^^^^^^^^^^^^^^^^^^^
odoo | File "/usr/lib/python3/dist-packages/odoo/http.py", line 2103, in _serve_db
odoo | return self._transactioning(
odoo | ^^^^^^^^^^^^^^^^^^^^^
odoo | File "/usr/lib/python3/dist-packages/odoo/http.py", line 2166, in _transactioning
odoo | return service_model.retrying(func, env=self.env)
odoo | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
odoo | File "/usr/lib/python3/dist-packages/odoo/service/model.py", line 156, in retrying
odoo | result = func()
odoo | ^^^^^^
odoo | File "/usr/lib/python3/dist-packages/odoo/http.py", line 2133, in _serve_ir_http
odoo | response = self.dispatcher.dispatch(rule.endpoint, args)
odoo | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
odoo | File "/usr/lib/python3/dist-packages/odoo/http.py", line 2381, in dispatch
odoo | result = self.request.registry['ir.http']._dispatch(endpoint)
odoo | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
odoo | File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_http.py", line 333, in _dispatch
odoo | result = endpoint(**request.params)
odoo | ^^^^^^^^^^^^^^^^^^^^^^^^^^
odoo | File "/usr/lib/python3/dist-packages/odoo/http.py", line 754, in route_wrapper
odoo | result = endpoint(self, *args, **params_ok)
odoo | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
odoo | File "/usr/lib/python3/dist-packages/odoo/addons/web/controllers/dataset.py", line 42, in call_button
odoo | action = call_kw(request.env[model], method, args, kwargs)
odoo | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
odoo | File "/usr/lib/python3/dist-packages/odoo/api.py", line 535, in call_kw
odoo | result = getattr(recs, name)(*args, **kwargs)
odoo | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
odoo | File "/usr/lib/python3/dist-packages/decorator.py", line 232, in fun
odoo | return caller(func, *(extras + args), **kw)
odoo | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
odoo | File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_module.py", line 75, in check_and_log
odoo | return method(self, *args, **kwargs)
odoo | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
odoo | File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_module.py", line 487, in button_immediate_install
odoo | return self._button_immediate_function(self.env.registry[self._name].button_install)
odoo | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
odoo | File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_module.py", line 611, in _button_immediate_function
odoo | registry = modules.registry.Registry.new(self._cr.dbname, update_module=True)
odoo | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
odoo | File "/usr/lib/python3/dist-packages/decorator.py", line 232, in fun
odoo | return caller(func, *(extras + args), **kw)
odoo | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
odoo | File "/usr/lib/python3/dist-packages/odoo/tools/func.py", line 97, in locked
odoo | return func(inst, *args, **kwargs)
odoo | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
odoo | File "/usr/lib/python3/dist-packages/odoo/modules/registry.py", line 129, in new
odoo | odoo.modules.load_modules(registry, force_demo, status, update_module)
odoo | File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 489, in load_modules
odoo | processed_modules += load_marked_modules(env, graph,
odoo | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
odoo | File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 365, in load_marked_modules
odoo | loaded, processed = load_module_graph(
odoo | ^^^^^^^^^^^^^^^^^^
odoo | File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 228, in load_module_graph
odoo | load_data(env, idref, mode, kind='data', package=package)
odoo | File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 72, in load_data
odoo | tools.convert_file(env, package.name, filename, idref, mode, noupdate, kind)
odoo | File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 615, in convert_file
odoo | convert_xml_import(env, module, fp, idref, mode, noupdate)
odoo | File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 669, in convert_xml_import
odoo | relaxng.assert_(doc)
odoo | File "src/lxml/etree.pyx", line 3682, in lxml.etree._Validator.assert_
odoo | AssertionError: Element odoo has extra content: template, line 4
Metadata
Metadata
Assignees
Labels
No labels