Parent/child topology not working after upgrade to version 2.3.0

CMK version:
2.3.0.cee

OS version:
Ubuntu Server 22.04

After upgrading from CheckMK version 2.2.0p23.cee to 2.3.0 my parent/child topology under monitoring doesn’t work anymore.
When i want to open this overview i get the following error message:

Error message:
Internal Server Error
This server encountered an internal error and was unable to complete your request. Either the server is overloaded of there is an error in the application.

Does anyone else also get this message after updating to the new 2.3.0 version of CheckMK?

I tried most standard things, restart the omd site and even restart the server, both wont work.
Besides the update of the omd version, nothing else has changed on the server, the problem is also started after updating to 2.3.0

Its not reproducible. Probably check the $OMD_ROOT/var/log/web.log and $OMD_ROOT/var/log/apache/error_log for more information.

Hi, it is very much reproducible. We’re having the same issue. updated from 2.2.0p25 enterprise to 2.3.0 enterprise

$OMD_ROOT/var/log/web.log output here:

2024-05-09 12:13:28,708 [40] [cmk.gui.wsgi.app 3792329] Exception on /evos_ss/check_mk/parent_child_topology.py [GET]
Traceback (most recent call last):
  File "/omd/sites/evos_ss/lib/python3/cmk/gui/wsgi/applications/checkmk.py", line 183, in _process_request
    resp = page_handler()
           ^^^^^^^^^^^^^^
  File "/omd/sites/evos_ss/lib/python3/cmk/gui/wsgi/applications/utils.py", line 112, in _call_auth
    func()
  File "/omd/sites/evos_ss/lib/python3/cmk/gui/pages.py", line 187, in wrapper
    return hc().handle_page()
           ^^^^^^^^^^^^^^^^^^
  File "/omd/sites/evos_ss/lib/python3/cmk/gui/pages.py", line 51, in handle_page
    self.page()
  File "/omd/sites/evos_ss/lib/python3/cmk/gui/nodevis/topology.py", line 204, in page
    self.show_topology()
  File "/omd/sites/evos_ss/lib/python3/cmk/gui/nodevis/topology.py", line 216, in show_topology
    self.show_topology_content()
  File "/omd/sites/evos_ss/lib/python3/cmk/gui/nodevis/topology.py", line 221, in show_topology_content
    topology_configuration = get_topology_configuration(
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/evos_ss/lib/python3/cmk/gui/nodevis/topology.py", line 1598, in get_topology_configuration
    topology_configuration = TopologyConfiguration.parse(serialized_settings)
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/evos_ss/lib/python3/cmk/gui/nodevis/type_defs.py", line 197, in parse
    cls._migrate_legacy_data(serialized_config)
  File "/omd/sites/evos_ss/lib/python3/cmk/gui/nodevis/type_defs.py", line 224, in _migrate_legacy_data
    "filter": TopologyFilterConfiguration().ident,
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<string>", line 3, in __init__
TypeError: 'int' object is not callable

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/omd/sites/evos_ss/lib/python3.12/site-packages/flask/app.py", line 1463, in wsgi_app
    response = self.full_dispatch_request()
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/evos_ss/lib/python3.12/site-packages/flask/app.py", line 873, in full_dispatch_request
    return self.finalize_request(rv)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/evos_ss/lib/python3.12/site-packages/flask/app.py", line 892, in finalize_request
    response = self.make_response(rv)
               ^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/evos_ss/lib/python3.12/site-packages/flask/app.py", line 1188, in make_response
    rv = self.response_class.force_type(
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/evos_ss/lib/python3.12/site-packages/werkzeug/wrappers/response.py", line 237, in force_type
    response = Response(*run_wsgi_app(response, environ))
                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/evos_ss/lib/python3.12/site-packages/werkzeug/test.py", line 1262, in run_wsgi_app
    app_rv = app(environ, start_response)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/evos_ss/lib/python3/cmk/gui/wsgi/applications/utils.py", line 48, in __call__
    return self.wsgi_app(environ, start_response)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/evos_ss/lib/python3/cmk/gui/wsgi/middleware.py", line 63, in wsgi_app
    return self.app(environ, start_response)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/evos_ss/lib/python3/cmk/gui/wsgi/applications/checkmk.py", line 162, in wsgi_app
    return _process_request(environ, start_response, debug=self.debug)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/evos_ss/lib/python3/cmk/gui/wsgi/applications/checkmk.py", line 224, in _process_request
    resp = handle_unhandled_exception()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/evos_ss/lib/python3/cmk/gui/wsgi/applications/utils.py", line 209, in handle_unhandled_exception
    handle_exception_as_gui_crash_report(
  File "/omd/sites/evos_ss/lib/python3/cmk/gui/crash_handler.py", line 56, in handle_exception_as_gui_crash_report
    crash = GUICrashReport.from_exception(details=details)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/evos_ss/lib/python3/cmk/gui/crash_handler.py", line 32, in from_exception
    return super().from_exception(
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/evos_ss/lib/python3/cmk/utils/crash_reporting.py", line 166, in from_exception
    "crash_info": _get_generic_crash_info(cls.type(), details or {}),
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/evos_ss/lib/python3/cmk/utils/crash_reporting.py", line 265, in _get_generic_crash_info
    "local_vars": _get_local_vars_of_last_exception(),
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/evos_ss/lib/python3/cmk/utils/crash_reporting.py", line 283, in _get_local_vars_of_last_exception
    _format_var_for_export(pprint.pformat(local_vars).encode("utf-8"), maxsize=5 * 1024 * 1024)
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/evos_ss/lib/python3.12/pprint.py", line 62, in pformat
    underscore_numbers=underscore_numbers).pformat(object)
                                           ^^^^^^^^^^^^^^^
  File "/omd/sites/evos_ss/lib/python3.12/pprint.py", line 161, in pformat
    self._format(object, sio, 0, 0, {}, 0)
  File "/omd/sites/evos_ss/lib/python3.12/pprint.py", line 178, in _format
    rep = self._repr(object, context, level)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/evos_ss/lib/python3.12/pprint.py", line 458, in _repr
    repr, readable, recursive = self.format(object, context.copy(),
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/evos_ss/lib/python3.12/pprint.py", line 471, in format
    return self._safe_repr(object, context, maxlevels, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/evos_ss/lib/python3.12/pprint.py", line 589, in _safe_repr
    vrepr, vreadable, vrecur = self.format(
                               ^^^^^^^^^^^^
  File "/omd/sites/evos_ss/lib/python3.12/pprint.py", line 471, in format
    return self._safe_repr(object, context, maxlevels, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/evos_ss/lib/python3.12/pprint.py", line 632, in _safe_repr
    rep = repr(object)
          ^^^^^^^^^^^^
  File "/omd/sites/evos_ss/lib/python3.12/dataclasses.py", line 262, in wrapper
    result = user_function(self)
             ^^^^^^^^^^^^^^^^^^^
  File "<string>", line 3, in __repr__
AttributeError: 'TopologyFilterConfiguration' object has no attribute 'max_nodes'

Is it possible to open a ticket?
During the update you didn’t face any problems about anything under the ~/local ?

My web.log looks quite similar.
I didn’t experience any problems at all during the update.

I just created a new site for the test. in this new site the Parent/Child topology works properly.
It seems to me that the problem must really be with this site.