Unable to activate Changes for central site. Error running automation call restart (exit code 1), error:... TypeError: tuple indices must be integers or slices, not str

CMK version: 2.4.0p32
OS version: RHEL 9.7

Error message:

Started at: 08:19:01. Finished at: 08:19:04.Error running automation call restart (exit code 1), error:

An error occurred: Error creating configuration: Traceback (most recent call last):
  File "/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py", line 2177, in _hosts_worker
    hosts_data = _compute_worker_hosts_data(
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py", line 2065, in _compute_worker_hosts_data
    helper_config_manager.get_host_data(
  File "/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py", line 3050, in get_host_data
    host_class(config_cache, hostname, hosts_config, passwords, ip_address_of),
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py", line 1320, in __init__
    host_attrs=config_cache.get_host_attributes(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/wato/lib/python3/cmk/base/config.py", line 3521, in get_host_attributes
    attrs = self.extra_host_attributes(hostname)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/wato/lib/python3/cmk/base/config.py", line 2353, in extra_host_attributes
    values = self.ruleset_matcher.get_host_values(host_name, ruleset)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/wato/lib/python3/cmk/utils/rulesets/ruleset_matcher.py", line 254, in get_host_values
    self.ruleset_optimizer.get_host_ruleset(ruleset, with_foreign_hosts)
  File "/omd/sites/wato/lib/python3/cmk/utils/rulesets/ruleset_matcher.py", line 581, in get_host_ruleset
    return self.__host_ruleset_cache.setdefault(cache_id, _impl(ruleset, with_foreign_hosts))
                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/wato/lib/python3/cmk/utils/rulesets/ruleset_matcher.py", line 572, in _impl
    for hostname in self._all_matching_hosts(rule["condition"], with_foreign_hosts):
                                             ~~~~^^^^^^^^^^^^^
TypeError: tuple indices must be integers or slices, not str

Traceback (most recent call last):
  File "/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py", line 2177, in _hosts_worker
    hosts_data = _compute_worker_hosts_data(
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py", line 2065, in _compute_worker_hosts_data
    helper_config_manager.get_host_data(
  File "/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py", line 3050, in get_host_data
    host_class(config_cache, hostname, hosts_config, passwords, ip_address_of),
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py", line 1320, in __init__
    host_attrs=config_cache.get_host_attributes(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/wato/lib/python3/cmk/base/config.py", line 3521, in get_host_attributes
    attrs = self.extra_host_attributes(hostname)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/wato/lib/python3/cmk/base/config.py", line 2353, in extra_host_attributes
    values = self.ruleset_matcher.get_host_values(host_name, ruleset)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/wato/lib/python3/cmk/utils/rulesets/ruleset_matcher.py", line 254, in get_host_values
    self.ruleset_optimizer.get_host_ruleset(ruleset, with_foreign_hosts)
  File "/omd/sites/wato/lib/python3/cmk/utils/rulesets/ruleset_matcher.py", line 581, in get_host_ruleset
    return self.__host_ruleset_cache.setdefault(cache_id, _impl(ruleset, with_foreign_hosts))
                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/wato/lib/python3/cmk/utils/rulesets/ruleset_matcher.py", line 572, in _impl
    for hostname in self._all_matching_hosts(rule["condition"], with_foreign_hosts):
                                             ~~~~^^^^^^^^^^^^^
TypeError: tuple indices must be integers or slices, not str

Traceback (most recent call last):
  File "/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py", line 2177, in _hosts_worker
    hosts_data = _compute_worker_hosts_data(
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py", line 2065, in _compute_worker_hosts_data
    helper_config_manager.get_host_data(
  File "/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py", line 3050, in get_host_data
    host_class(config_cache, hostname, hosts_config, passwords, ip_address_of),
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py", line 1320, in __init__
    host_attrs=config_cache.get_host_attributes(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/wato/lib/python3/cmk/base/config.py", line 3521, in get_host_attributes
    attrs = self.extra_host_attributes(hostname)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/wato/lib/python3/cmk/base/config.py", line 2353, in extra_host_attributes
    values = self.ruleset_matcher.get_host_values(host_name, ruleset)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/wato/lib/python3/cmk/utils/rulesets/ruleset_matcher.py", line 254, in get_host_values
    self.ruleset_optimizer.get_host_ruleset(ruleset, with_foreign_hosts)
  File "/omd/sites/wato/lib/python3/cmk/utils/rulesets/ruleset_matcher.py", line 581, in get_host_ruleset
    return self.__host_ruleset_cache.setdefault(cache_id, _impl(ruleset, with_foreign_hosts))
                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/wato/lib/python3/cmk/utils/rulesets/ruleset_matcher.py", line 572, in _impl
    for hostname in self._all_matching_hosts(rule["condition"], with_foreign_hosts):
                                             ~~~~^^^^^^^^^^^^^
TypeError: tuple indices must be integers or slices, not str

Traceback (most recent call last):
  File "/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py", line 2177, in _hosts_worker
    hosts_data = _compute_worker_hosts_data(
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py", line 2065, in _compute_worker_hosts_data
    helper_config_manager.get_host_data(
  File "/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py", line 3050, in get_host_data
    host_class(config_cache, hostname, hosts_config, passwords, ip_address_of),
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py", line 1320, in __init__
    host_attrs=config_cache.get_host_attributes(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/wato/lib/python3/cmk/base/config.py", line 3521, in get_host_attributes
    attrs = self.extra_host_attributes(hostname)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/wato/lib/python3/cmk/base/config.py", line 2353, in extra_host_attributes
    values = self.ruleset_matcher.get_host_values(host_name, ruleset)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/wato/lib/python3/cmk/utils/rulesets/ruleset_matcher.py", line 254, in get_host_values
    self.ruleset_optimizer.get_host_ruleset(ruleset, with_foreign_hosts)
  File "/omd/sites/wato/lib/python3/cmk/utils/rulesets/ruleset_matcher.py", line 581, in get_host_ruleset
    return self.__host_ruleset_cache.setdefault(cache_id, _impl(ruleset, with_foreign_hosts))
                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/wato/lib/python3/cmk/utils/rulesets/ruleset_matcher.py", line 572, in _impl
    for hostname in self._all_matching_hosts(rule["condition"], with_foreign_hosts):
                                             ~~~~^^^^^^^^^^^^^
TypeError: tuple indices must be integers or slices, not str

Traceback (most recent call last):
  File "/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py", line 2177, in _hosts_worker
    hosts_data = _compute_worker_hosts_data(
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py", line 2065, in _compute_worker_hosts_data
    helper_config_manager.get_host_data(
  File "/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py", line 3050, in get_host_data
    host_class(config_cache, hostname, hosts_config, passwords, ip_address_of),
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py", line 1320, in __init__
    host_attrs=config_cache.get_host_attributes(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/wato/lib/python3/cmk/base/config.py", line 3521, in get_host_attributes
    attrs = self.extra_host_attributes(hostname)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/wato/lib/python3/cmk/base/config.py", line 2353, in extra_host_attributes
    values = self.ruleset_matcher.get_host_values(host_name, ruleset)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/wato/lib/python3/cmk/utils/rulesets/ruleset_matcher.py", line 254, in get_host_values
    self.ruleset_optimizer.get_host_ruleset(ruleset, with_foreign_hosts)
  File "/omd/sites/wato/lib/python3/cmk/utils/rulesets/ruleset_matcher.py", line 581, in get_host_ruleset
    return self.__host_ruleset_cache.setdefault(cache_id, _impl(ruleset, with_foreign_hosts))
                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/wato/lib/python3/cmk/utils/rulesets/ruleset_matcher.py", line 572, in _impl
    for hostname in self._all_matching_hosts(rule["condition"], with_foreign_hosts):
                                             ~~~~^^^^^^^^^^^^^
TypeError: tuple indices must be integers or slices, not str

Traceback (most recent call last):
  File "/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py", line 2177, in _hosts_worker
    hosts_data = _compute_worker_hosts_data(
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py", line 2065, in _compute_worker_hosts_data
    helper_config_manager.get_host_data(
  File "/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py", line 3050, in get_host_data
    host_class(config_cache, hostname, hosts_config, passwords, ip_address_of),
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py", line 1320, in __init__
    host_attrs=config_cache.get_host_attributes(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/wato/lib/python3/cmk/base/config.py", line 3521, in get_host_attributes
    attrs = self.extra_host_attributes(hostname)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/wato/lib/python3/cmk/base/config.py", line 2353, in extra_host_attributes
    values = self.ruleset_matcher.get_host_values(host_name, ruleset)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/wato/lib/python3/cmk/utils/rulesets/ruleset_matcher.py", line 254, in get_host_values
    self.ruleset_optimizer.get_host_ruleset(ruleset, with_foreign_hosts)
  File "/omd/sites/wato/lib/python3/cmk/utils/rulesets/ruleset_matcher.py", line 581, in get_host_ruleset
    return self.__host_ruleset_cache.setdefault(cache_id, _impl(ruleset, with_foreign_hosts))
                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/wato/lib/python3/cmk/utils/rulesets/ruleset_matcher.py", line 572, in _impl
    for hostname in self._all_matching_hosts(rule["condition"], with_foreign_hosts):
                                             ~~~~^^^^^^^^^^^^^
TypeError: tuple indices must be integers or slices, not str

Sorry for the long title.

since Friday morning we are no longer able to activate changes on our central site. After just some seconds we get the error above.

The Activation works fine for the remote sites.

We Updated to 2.4.0p32 (from 2.4.0p26) on Wednesday. Besides a Nagvis issue everything worked just fine. We were able to activate changes on Thursday. Thursday evening the server was restarted and on Friday morning the activation of changes was no longer possible for the central site.

omd restart does not fix the problem.

output of cmk -R --debug -vvv:

Trying to acquire lock on /omd/sites/wato/etc/check_mk/main.mk
Got lock on /omd/sites/wato/etc/check_mk/main.mk
Generating configuration for core (type cmc)…
Trying to acquire lock on /omd/sites/wato/var/check_mk/passwords_merged
Got lock on /omd/sites/wato/var/check_mk/passwords_merged
Releasing lock on /omd/sites/wato/var/check_mk/passwords_merged
Released lock on /omd/sites/wato/var/check_mk/passwords_merged
Trying to acquire lock on /omd/sites/wato/var/check_mk/core/helper_config/serial.mk
Got lock on /omd/sites/wato/var/check_mk/core/helper_config/serial.mk
Releasing lock on /omd/sites/wato/var/check_mk/core/helper_config/serial.mk
Released lock on /omd/sites/wato/var/check_mk/core/helper_config/serial.mk
Trying to acquire lock on /omd/sites/wato/var/check_mk/licensing/licensed_state
Got lock on /omd/sites/wato/var/check_mk/licensing/licensed_state
Releasing lock on /omd/sites/wato/var/check_mk/licensing/licensed_state
Released lock on /omd/sites/wato/var/check_mk/licensing/licensed_state

time period …(removed this lines because of the names)

Starting full compilation for all hosts
Creating global helper config…Trying to acquire lock on /omd/sites/wato/var/check_mk/core/helper_config/4811/rrd_config/cmc_log_rrdcreation
Got lock on /omd/sites/wato/var/check_mk/core/helper_config/4811/rrd_config/cmc_log_rrdcreation
Releasing lock on /omd/sites/wato/var/check_mk/core/helper_config/4811/rrd_config/cmc_log_rrdcreation
Released lock on /omd/sites/wato/var/check_mk/core/helper_config/4811/rrd_config/cmc_log_rrdcreation
Trying to acquire lock on /omd/sites/wato/var/check_mk/core/helper_config/4811/inventory_plugins_index.json
Got lock on /omd/sites/wato/var/check_mk/core/helper_config/4811/inventory_plugins_index.json
Releasing lock on /omd/sites/wato/var/check_mk/core/helper_config/4811/inventory_plugins_index.json
Released lock on /omd/sites/wato/var/check_mk/core/helper_config/4811/inventory_plugins_index.json
OK
Creating cmc protobuf configuration…Releasing lock on /omd/sites/wato/etc/check_mk/main.mk
Released lock on /omd/sites/wato/etc/check_mk/main.mk
Trying to acquire lock on /omd/sites/wato/var/check_mk/crashes/base/433666fc-7907-11f1-bb85-005056bd0e74/crash.info
Got lock on /omd/sites/wato/var/check_mk/crashes/base/433666fc-7907-11f1-bb85-005056bd0e74/crash.info
Releasing lock on /omd/sites/wato/var/check_mk/crashes/base/433666fc-7907-11f1-bb85-005056bd0e74/crash.info
Released lock on /omd/sites/wato/var/check_mk/crashes/base/433666fc-7907-11f1-bb85-005056bd0e74/crash.info
Traceback (most recent call last):
File “/omd/sites/wato/bin/cmk”, line 151, in 
exit_status = modes.call(mode_name, mode_args, opts, args, trace_context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/omd/sites/wato/lib/python3/cmk/base/modes/init.py”, line 91, in call
return handler(*handler_args)
^^^^^^^^^^^^^^^^^^^^^^
File “/omd/sites/wato/lib/python3/cmk/base/modes/check_mk.py”, line 1494, in mode_restart
cmk.base.core.do_restart(
File “/omd/sites/wato/lib/python3/cmk/base/core.py”, line 92, in do_restart
core_config.do_create_config(
File “/omd/sites/wato/lib/python3/cmk/base/core_config.py”, line 289, in do_create_config
_create_core_config(
File “/omd/sites/wato/lib/python3/cmk/base/core_config.py”, line 401, in _create_core_config
core.create_config(
File “/omd/sites/wato/lib/python3/cmk/base/core_config.py”, line 75, in create_config
self._create_config(
File “/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py”, line 3405, in _create_config
data = create_core_config(
^^^^^^^^^^^^^^^^^^^
File “/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py”, line 3323, in create_core_config
hosts_results = _serialize_config_hosts(
^^^^^^^^^^^^^^^^^^^^^^^^
File “/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py”, line 2912, in _serialize_config_hosts
hosts.compute_configuration(
File “/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py”, line 2553, in compute_configuration
for r in _compute_hosts_configurations(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py”, line 3469, in _one_worker_per_chunk
raise Exception(“\n”.join(map(str, errors)))
Exception: Traceback (most recent call last):
File “/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py”, line 2177, in _hosts_worker
hosts_data = _compute_worker_hosts_data(
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py”, line 2065, in _compute_worker_hosts_data
helper_config_manager.get_host_data(
File “/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py”, line 3050, in get_host_data
host_class(config_cache, hostname, hosts_config, passwords, ip_address_of),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py”, line 1320, in init
host_attrs=config_cache.get_host_attributes(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/omd/sites/wato/lib/python3/cmk/base/config.py”, line 3521, in get_host_attributes
attrs = self.extra_host_attributes(hostname)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/omd/sites/wato/lib/python3/cmk/base/config.py”, line 2353, in extra_host_attributes
values = self.ruleset_matcher.get_host_values(host_name, ruleset)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/omd/sites/wato/lib/python3/cmk/utils/rulesets/ruleset_matcher.py”, line 254, in get_host_values
self.ruleset_optimizer.get_host_ruleset(ruleset, with_foreign_hosts)
File “/omd/sites/wato/lib/python3/cmk/utils/rulesets/ruleset_matcher.py”, line 581, in get_host_ruleset
return self.__host_ruleset_cache.setdefault(cache_id, _impl(ruleset, with_foreign_hosts))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/omd/sites/wato/lib/python3/cmk/utils/rulesets/ruleset_matcher.py”, line 572, in _impl
for hostname in self._all_matching_hosts(rule[“condition”], with_foreign_hosts):
~~~~^^^^^^^^^^^^^
TypeError: tuple indices must be integers or slices, not str

Traceback (most recent call last):
File “/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py”, line 2177, in _hosts_worker
hosts_data = _compute_worker_hosts_data(
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py”, line 2065, in _compute_worker_hosts_data
helper_config_manager.get_host_data(
File “/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py”, line 3050, in get_host_data
host_class(config_cache, hostname, hosts_config, passwords, ip_address_of),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py”, line 1320, in init
host_attrs=config_cache.get_host_attributes(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/omd/sites/wato/lib/python3/cmk/base/config.py”, line 3521, in get_host_attributes
attrs = self.extra_host_attributes(hostname)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/omd/sites/wato/lib/python3/cmk/base/config.py”, line 2353, in extra_host_attributes
values = self.ruleset_matcher.get_host_values(host_name, ruleset)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/omd/sites/wato/lib/python3/cmk/utils/rulesets/ruleset_matcher.py”, line 254, in get_host_values
self.ruleset_optimizer.get_host_ruleset(ruleset, with_foreign_hosts)
File “/omd/sites/wato/lib/python3/cmk/utils/rulesets/ruleset_matcher.py”, line 581, in get_host_ruleset
return self.__host_ruleset_cache.setdefault(cache_id, _impl(ruleset, with_foreign_hosts))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/omd/sites/wato/lib/python3/cmk/utils/rulesets/ruleset_matcher.py”, line 572, in _impl
for hostname in self._all_matching_hosts(rule[“condition”], with_foreign_hosts):
~~~~^^^^^^^^^^^^^
TypeError: tuple indices must be integers or slices, not str

Traceback (most recent call last):
File “/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py”, line 2177, in _hosts_worker
hosts_data = _compute_worker_hosts_data(
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py”, line 2065, in _compute_worker_hosts_data
helper_config_manager.get_host_data(
File “/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py”, line 3050, in get_host_data
host_class(config_cache, hostname, hosts_config, passwords, ip_address_of),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py”, line 1320, in init
host_attrs=config_cache.get_host_attributes(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/omd/sites/wato/lib/python3/cmk/base/config.py”, line 3521, in get_host_attributes
attrs = self.extra_host_attributes(hostname)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/omd/sites/wato/lib/python3/cmk/base/config.py”, line 2353, in extra_host_attributes
values = self.ruleset_matcher.get_host_values(host_name, ruleset)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/omd/sites/wato/lib/python3/cmk/utils/rulesets/ruleset_matcher.py”, line 254, in get_host_values
self.ruleset_optimizer.get_host_ruleset(ruleset, with_foreign_hosts)
File “/omd/sites/wato/lib/python3/cmk/utils/rulesets/ruleset_matcher.py”, line 581, in get_host_ruleset
return self.__host_ruleset_cache.setdefault(cache_id, _impl(ruleset, with_foreign_hosts))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/omd/sites/wato/lib/python3/cmk/utils/rulesets/ruleset_matcher.py”, line 572, in _impl
for hostname in self._all_matching_hosts(rule[“condition”], with_foreign_hosts):
~~~~^^^^^^^^^^^^^
TypeError: tuple indices must be integers or slices, not str

Traceback (most recent call last):
File “/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py”, line 2177, in _hosts_worker
hosts_data = _compute_worker_hosts_data(
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py”, line 2065, in _compute_worker_hosts_data
helper_config_manager.get_host_data(
File “/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py”, line 3050, in get_host_data
host_class(config_cache, hostname, hosts_config, passwords, ip_address_of),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py”, line 1320, in init
host_attrs=config_cache.get_host_attributes(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/omd/sites/wato/lib/python3/cmk/base/config.py”, line 3521, in get_host_attributes
attrs = self.extra_host_attributes(hostname)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/omd/sites/wato/lib/python3/cmk/base/config.py”, line 2353, in extra_host_attributes
values = self.ruleset_matcher.get_host_values(host_name, ruleset)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/omd/sites/wato/lib/python3/cmk/utils/rulesets/ruleset_matcher.py”, line 254, in get_host_values
self.ruleset_optimizer.get_host_ruleset(ruleset, with_foreign_hosts)
File “/omd/sites/wato/lib/python3/cmk/utils/rulesets/ruleset_matcher.py”, line 581, in get_host_ruleset
return self.__host_ruleset_cache.setdefault(cache_id, _impl(ruleset, with_foreign_hosts))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/omd/sites/wato/lib/python3/cmk/utils/rulesets/ruleset_matcher.py”, line 572, in _impl
for hostname in self._all_matching_hosts(rule[“condition”], with_foreign_hosts):
~~~~^^^^^^^^^^^^^
TypeError: tuple indices must be integers or slices, not str

Traceback (most recent call last):
File “/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py”, line 2177, in _hosts_worker
hosts_data = _compute_worker_hosts_data(
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py”, line 2065, in _compute_worker_hosts_data
helper_config_manager.get_host_data(
File “/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py”, line 3050, in get_host_data
host_class(config_cache, hostname, hosts_config, passwords, ip_address_of),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py”, line 1320, in init
host_attrs=config_cache.get_host_attributes(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/omd/sites/wato/lib/python3/cmk/base/config.py”, line 3521, in get_host_attributes
attrs = self.extra_host_attributes(hostname)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/omd/sites/wato/lib/python3/cmk/base/config.py”, line 2353, in extra_host_attributes
values = self.ruleset_matcher.get_host_values(host_name, ruleset)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/omd/sites/wato/lib/python3/cmk/utils/rulesets/ruleset_matcher.py”, line 254, in get_host_values
self.ruleset_optimizer.get_host_ruleset(ruleset, with_foreign_hosts)
File “/omd/sites/wato/lib/python3/cmk/utils/rulesets/ruleset_matcher.py”, line 581, in get_host_ruleset
return self.__host_ruleset_cache.setdefault(cache_id, _impl(ruleset, with_foreign_hosts))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/omd/sites/wato/lib/python3/cmk/utils/rulesets/ruleset_matcher.py”, line 572, in _impl
for hostname in self._all_matching_hosts(rule[“condition”], with_foreign_hosts):
~~~~^^^^^^^^^^^^^
TypeError: tuple indices must be integers or slices, not str

Traceback (most recent call last):
File “/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py”, line 2177, in _hosts_worker
hosts_data = _compute_worker_hosts_data(
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py”, line 2065, in _compute_worker_hosts_data
helper_config_manager.get_host_data(
File “/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py”, line 3050, in get_host_data
host_class(config_cache, hostname, hosts_config, passwords, ip_address_of),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py”, line 1320, in init
host_attrs=config_cache.get_host_attributes(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/omd/sites/wato/lib/python3/cmk/base/config.py”, line 3521, in get_host_attributes
attrs = self.extra_host_attributes(hostname)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/omd/sites/wato/lib/python3/cmk/base/config.py”, line 2353, in extra_host_attributes
values = self.ruleset_matcher.get_host_values(host_name, ruleset)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/omd/sites/wato/lib/python3/cmk/utils/rulesets/ruleset_matcher.py”, line 254, in get_host_values
self.ruleset_optimizer.get_host_ruleset(ruleset, with_foreign_hosts)
File “/omd/sites/wato/lib/python3/cmk/utils/rulesets/ruleset_matcher.py”, line 581, in get_host_ruleset
return self.__host_ruleset_cache.setdefault(cache_id, _impl(ruleset, with_foreign_hosts))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/omd/sites/wato/lib/python3/cmk/utils/rulesets/ruleset_matcher.py”, line 572, in _impl
for hostname in self._all_matching_hosts(rule[“condition”], with_foreign_hosts):
~~~~^^^^^^^^^^^^^
TypeError: tuple indices must be integers or slices, not str

Content of the mentioned crash reports:

{
    "core": "cmc",
    "crash_type": "base",
    "details": {
        "argv": [
            "/omd/sites/wato/bin/cmk",
            "-R",
            "--debug",
            "-vvv"
        ],
        "env": {
            "BASH_FUNC_which%%": "() {  ( alias;\n eval ${which_declare} ) | /usr/bin/which --tty-only --read-alias --read-functions --show-tilde --show-dot $@\n}",
            "DEBUGINFOD_IMA_CERT_PATH": "/etc/keys/ima:",
            "EDITOR": "vim",
            "HISTCONTROL": "ignoredups",
            "HISTSIZE": "1000",
            "HOME": "/omd/sites/wato",
            "HOSTNAME": "v971l015",
            "LANG": "C.utf8",
            "LC_ALL": "C.utf8",
            "LD_LIBRARY_PATH": "/omd/sites/wato/local/lib:/omd/sites/wato/lib",
            "LESSOPEN": "||/usr/bin/lesspipe.sh %s",
            "LOGNAME": "wato",
            "LS_COLORS": "rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.m4a=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.oga=01;36:*.opus=01;36:*.spx=01;36:*.xspf=01;36:",
            "MAIL": "/var/spool/mail/wato",
            "MAILRC": "/omd/sites/wato/etc/mail.rc",
            "MANPATH": "/omd/sites/wato/share/man:",
            "MODULEBUILDRC": "/omd/sites/wato/.modulebuildrc",
            "MP_STATE_DIRECTORY": "/omd/sites/wato/var/monitoring-plugins",
            "NAGIOS_PLUGIN_STATE_DIRECTORY": "/omd/sites/wato/var/monitoring-plugins",
            "OMD_ROOT": "/omd/sites/wato",
            "OMD_SITE": "wato",
            "PATH": "/omd/sites/wato/lib/rabbitmq/sbin:/omd/sites/wato/lib/perl5/bin:/omd/sites/wato/local/bin:/omd/sites/wato/bin:/omd/sites/wato/local/lib/perl5/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin",
            "PERL5LIB": "/omd/sites/wato/local/lib/perl5/lib/perl5:/omd/sites/wato/lib/perl5/lib/perl5:",
            "PERL_MM_OPT": "INSTALL_BASE=/omd/sites/wato/local/lib/perl5/",
            "PWD": "/omd/sites/wato",
            "RABBITMQ_ERLANG_COOKIE": "UZMSLSTINAOXDWLAWDTO",
            "RABBITMQ_HOME": "/omd/sites/wato",
            "RABBITMQ_NODENAME": "rabbit-wato@localhost",
            "REQUESTS_CA_BUNDLE": "/omd/sites/wato/var/ssl/ca-certificates.crt",
            "SHELL": "/bin/bash",
            "SHLVL": "1",
            "SQLITE_TMPDIR": "/omd/sites/wato/tmp",
            "SSL_CERT_FILE": "/omd/sites/wato/var/ssl/ca-certificates.crt",
            "TERM": "xterm",
            "USER": "wato",
            "XDG_DATA_DIRS": "/omd/sites/wato/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share",
            "_": "/omd/sites/wato/bin/cmk",
            "which_declare": "declare -f"
        }
    },
    "edition": "cee",
    "exc_traceback": [
        [
            "/omd/sites/wato/bin/cmk",
            151,
            "<module>",
            "exit_status = modes.call(mode_name, mode_args, opts, args, trace_context)"
        ],
        [
            "/omd/sites/wato/lib/python3/cmk/base/modes/__init__.py",
            91,
            "call",
            "return handler(*handler_args)"
        ],
        [
            "/omd/sites/wato/lib/python3/cmk/base/modes/check_mk.py",
            1494,
            "mode_restart",
            "cmk.base.core.do_restart("
        ],
        [
            "/omd/sites/wato/lib/python3/cmk/base/core.py",
            92,
            "do_restart",
            "core_config.do_create_config("
        ],
        [
            "/omd/sites/wato/lib/python3/cmk/base/core_config.py",
            289,
            "do_create_config",
            "_create_core_config("
        ],
        [
            "/omd/sites/wato/lib/python3/cmk/base/core_config.py",
            401,
            "_create_core_config",
            "core.create_config("
        ],
        [
            "/omd/sites/wato/lib/python3/cmk/base/core_config.py",
            75,
            "create_config",
            "self._create_config("
        ],
        [
            "/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py",
            3405,
            "_create_config",
            "data = create_core_config("
        ],
        [
            "/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py",
            3323,
            "create_core_config",
            "hosts_results = _serialize_config_hosts("
        ],
        [
            "/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py",
            2912,
            "_serialize_config_hosts",
            "hosts.compute_configuration("
        ],
        [
            "/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py",
            2553,
            "compute_configuration",
            "for r in _compute_hosts_configurations("
        ],
        [
            "/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py",
            3469,
            "_one_worker_per_chunk",
            "raise Exception(\"\\n\".join(map(str, errors)))"
        ]
    ],
    "exc_type": "Exception",
    "exc_value": "Traceback (most recent call last):\n  File \"/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py\", line 2177, in _hosts_worker\n    hosts_data = _compute_worker_hosts_data(\n                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py\", line 2065, in _compute_worker_hosts_data\n    helper_config_manager.get_host_data(\n  File \"/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py\", line 3050, in get_host_data\n    host_class(config_cache, hostname, hosts_config, passwords, ip_address_of),\n    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py\", line 1320, in __init__\n    host_attrs=config_cache.get_host_attributes(\n               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/omd/sites/wato/lib/python3/cmk/base/config.py\", line 3521, in get_host_attributes\n    attrs = self.extra_host_attributes(hostname)\n            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/omd/sites/wato/lib/python3/cmk/base/config.py\", line 2353, in extra_host_attributes\n    values = self.ruleset_matcher.get_host_values(host_name, ruleset)\n             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/omd/sites/wato/lib/python3/cmk/utils/rulesets/ruleset_matcher.py\", line 254, in get_host_values\n    self.ruleset_optimizer.get_host_ruleset(ruleset, with_foreign_hosts)\n  File \"/omd/sites/wato/lib/python3/cmk/utils/rulesets/ruleset_matcher.py\", line 581, in get_host_ruleset\n    return self.__host_ruleset_cache.setdefault(cache_id, _impl(ruleset, with_foreign_hosts))\n                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/omd/sites/wato/lib/python3/cmk/utils/rulesets/ruleset_matcher.py\", line 572, in _impl\n    for hostname in self._all_matching_hosts(rule[\"condition\"], with_foreign_hosts):\n                                             ~~~~^^^^^^^^^^^^^\nTypeError: tuple indices must be integers or slices, not str\n\nTraceback (most recent call last):\n  File \"/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py\", line 2177, in _hosts_worker\n    hosts_data = _compute_worker_hosts_data(\n                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py\", line 2065, in _compute_worker_hosts_data\n    helper_config_manager.get_host_data(\n  File \"/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py\", line 3050, in get_host_data\n    host_class(config_cache, hostname, hosts_config, passwords, ip_address_of),\n    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py\", line 1320, in __init__\n    host_attrs=config_cache.get_host_attributes(\n               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/omd/sites/wato/lib/python3/cmk/base/config.py\", line 3521, in get_host_attributes\n    attrs = self.extra_host_attributes(hostname)\n            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/omd/sites/wato/lib/python3/cmk/base/config.py\", line 2353, in extra_host_attributes\n    values = self.ruleset_matcher.get_host_values(host_name, ruleset)\n             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/omd/sites/wato/lib/python3/cmk/utils/rulesets/ruleset_matcher.py\", line 254, in get_host_values\n    self.ruleset_optimizer.get_host_ruleset(ruleset, with_foreign_hosts)\n  File \"/omd/sites/wato/lib/python3/cmk/utils/rulesets/ruleset_matcher.py\", line 581, in get_host_ruleset\n    return self.__host_ruleset_cache.setdefault(cache_id, _impl(ruleset, with_foreign_hosts))\n                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/omd/sites/wato/lib/python3/cmk/utils/rulesets/ruleset_matcher.py\", line 572, in _impl\n    for hostname in self._all_matching_hosts(rule[\"condition\"], with_foreign_hosts):\n                                             ~~~~^^^^^^^^^^^^^\nTypeError: tuple indices must be integers or slices, not str\n\nTraceback (most recent call last):\n  File \"/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py\", line 2177, in _hosts_worker\n    hosts_data = _compute_worker_hosts_data(\n                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py\", line 2065, in _compute_worker_hosts_data\n    helper_config_manager.get_host_data(\n  File \"/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py\", line 3050, in get_host_data\n    host_class(config_cache, hostname, hosts_config, passwords, ip_address_of),\n    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py\", line 1320, in __init__\n    host_attrs=config_cache.get_host_attributes(\n               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/omd/sites/wato/lib/python3/cmk/base/config.py\", line 3521, in get_host_attributes\n    attrs = self.extra_host_attributes(hostname)\n            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/omd/sites/wato/lib/python3/cmk/base/config.py\", line 2353, in extra_host_attributes\n    values = self.ruleset_matcher.get_host_values(host_name, ruleset)\n             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/omd/sites/wato/lib/python3/cmk/utils/rulesets/ruleset_matcher.py\", line 254, in get_host_values\n    self.ruleset_optimizer.get_host_ruleset(ruleset, with_foreign_hosts)\n  File \"/omd/sites/wato/lib/python3/cmk/utils/rulesets/ruleset_matcher.py\", line 581, in get_host_ruleset\n    return self.__host_ruleset_cache.setdefault(cache_id, _impl(ruleset, with_foreign_hosts))\n                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/omd/sites/wato/lib/python3/cmk/utils/rulesets/ruleset_matcher.py\", line 572, in _impl\n    for hostname in self._all_matching_hosts(rule[\"condition\"], with_foreign_hosts):\n                                             ~~~~^^^^^^^^^^^^^\nTypeError: tuple indices must be integers or slices, not str\n\nTraceback (most recent call last):\n  File \"/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py\", line 2177, in _hosts_worker\n    hosts_data = _compute_worker_hosts_data(\n                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py\", line 2065, in _compute_worker_hosts_data\n    helper_config_manager.get_host_data(\n  File \"/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py\", line 3050, in get_host_data\n    host_class(config_cache, hostname, hosts_config, passwords, ip_address_of),\n    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py\", line 1320, in __init__\n    host_attrs=config_cache.get_host_attributes(\n               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/omd/sites/wato/lib/python3/cmk/base/config.py\", line 3521, in get_host_attributes\n    attrs = self.extra_host_attributes(hostname)\n            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/omd/sites/wato/lib/python3/cmk/base/config.py\", line 2353, in extra_host_attributes\n    values = self.ruleset_matcher.get_host_values(host_name, ruleset)\n             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/omd/sites/wato/lib/python3/cmk/utils/rulesets/ruleset_matcher.py\", line 254, in get_host_values\n    self.ruleset_optimizer.get_host_ruleset(ruleset, with_foreign_hosts)\n  File \"/omd/sites/wato/lib/python3/cmk/utils/rulesets/ruleset_matcher.py\", line 581, in get_host_ruleset\n    return self.__host_ruleset_cache.setdefault(cache_id, _impl(ruleset, with_foreign_hosts))\n                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/omd/sites/wato/lib/python3/cmk/utils/rulesets/ruleset_matcher.py\", line 572, in _impl\n    for hostname in self._all_matching_hosts(rule[\"condition\"], with_foreign_hosts):\n                                             ~~~~^^^^^^^^^^^^^\nTypeError: tuple indices must be integers or slices, not str\n\nTraceback (most recent call last):\n  File \"/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py\", line 2177, in _hosts_worker\n    hosts_data = _compute_worker_hosts_data(\n                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py\", line 2065, in _compute_worker_hosts_data\n    helper_config_manager.get_host_data(\n  File \"/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py\", line 3050, in get_host_data\n    host_class(config_cache, hostname, hosts_config, passwords, ip_address_of),\n    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py\", line 1320, in __init__\n    host_attrs=config_cache.get_host_attributes(\n               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/omd/sites/wato/lib/python3/cmk/base/config.py\", line 3521, in get_host_attributes\n    attrs = self.extra_host_attributes(hostname)\n            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/omd/sites/wato/lib/python3/cmk/base/config.py\", line 2353, in extra_host_attributes\n    values = self.ruleset_matcher.get_host_values(host_name, ruleset)\n             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/omd/sites/wato/lib/python3/cmk/utils/rulesets/ruleset_matcher.py\", line 254, in get_host_values\n    self.ruleset_optimizer.get_host_ruleset(ruleset, with_foreign_hosts)\n  File \"/omd/sites/wato/lib/python3/cmk/utils/rulesets/ruleset_matcher.py\", line 581, in get_host_ruleset\n    return self.__host_ruleset_cache.setdefault(cache_id, _impl(ruleset, with_foreign_hosts))\n                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/omd/sites/wato/lib/python3/cmk/utils/rulesets/ruleset_matcher.py\", line 572, in _impl\n    for hostname in self._all_matching_hosts(rule[\"condition\"], with_foreign_hosts):\n                                             ~~~~^^^^^^^^^^^^^\nTypeError: tuple indices must be integers or slices, not str\n\nTraceback (most recent call last):\n  File \"/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py\", line 2177, in _hosts_worker\n    hosts_data = _compute_worker_hosts_data(\n                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py\", line 2065, in _compute_worker_hosts_data\n    helper_config_manager.get_host_data(\n  File \"/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py\", line 3050, in get_host_data\n    host_class(config_cache, hostname, hosts_config, passwords, ip_address_of),\n    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/omd/sites/wato/lib/python3/cmk/base/cee/microcore_config.py\", line 1320, in __init__\n    host_attrs=config_cache.get_host_attributes(\n               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/omd/sites/wato/lib/python3/cmk/base/config.py\", line 3521, in get_host_attributes\n    attrs = self.extra_host_attributes(hostname)\n            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/omd/sites/wato/lib/python3/cmk/base/config.py\", line 2353, in extra_host_attributes\n    values = self.ruleset_matcher.get_host_values(host_name, ruleset)\n             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/omd/sites/wato/lib/python3/cmk/utils/rulesets/ruleset_matcher.py\", line 254, in get_host_values\n    self.ruleset_optimizer.get_host_ruleset(ruleset, with_foreign_hosts)\n  File \"/omd/sites/wato/lib/python3/cmk/utils/rulesets/ruleset_matcher.py\", line 581, in get_host_ruleset\n    return self.__host_ruleset_cache.setdefault(cache_id, _impl(ruleset, with_foreign_hosts))\n                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/omd/sites/wato/lib/python3/cmk/utils/rulesets/ruleset_matcher.py\", line 572, in _impl\n    for hostname in self._all_matching_hosts(rule[\"condition\"], with_foreign_hosts):\n                                             ~~~~^^^^^^^^^^^^^\nTypeError: tuple indices must be integers or slices, not str\n",
    "id": "433666fc-7907-11f1-bb85-005056bd0e74",
    "local_vars": "eydfJzogPFByb2Nlc3MgbmFtZT0nUHJvY2Vzcy02JyBwaWQ9NTkzMjQ5IHBhcmVudD01OTMwOTIgc3RvcHBlZCBleGl0Y29kZT0wPiwKICdlbnRyaWVzJzogWyhbJ3NsYTEzLjA4X3ZrJywKICAgICAgICAgICAgICAgJ3NsYTEzLjEyX3ZrJywKICAgICAgICAgICAgICAgJ20wODVfc3RhbmRvcnRlX3dzdGYnLAogICAgICAgICAgICAgICAnbTAyMl9zbGFfd3N0ZicsCiAgICAgICAgICAgICAgICdtMDEwX3N0YW5kb3J0ZV9tZCcsCiAgICAgICAgICAgICAgICdtMDg1X3N0YW5kb3J0ZV9ic2gnLAogICAgICAgICAgICAgICAndjk3MWwwMjAnLAogICAgICAgICAgICAgICAndjk3NmwwMjAnLAogICAgICAgICAgICAgICAnc2xhMDEuMDFfcnZkaWFsb2cnXSwKICAgICAgICAgICAgICBOb25lLAogICAgICAgICAgICAgIDApLAogICAgICAgICAgICAgKFsnbTAyMl9zZXJ2aWNlbW9uaXRvcmluZycsCiAgICAgICAgICAgICAgICdtMTAwX2JldHJpZWItc3RhbmRhcmRhbndlbmR1bmdlbicsCiAgICAgICAgICAgICAgICdzbGExMy4wMV9pbnRyYW5ldCcsCiAgICAgICAgICAgICAgICd2OTcwbDAwOCcsCiAgICAgICAgICAgICAgICdtMDEwX3N0YW5kb3J0ZV9ic2gnLAogICAgICAgICAgICAgICAnc2xhMDMuMDFfcnZzbWQnLAogICAgICAgICAgICAgICAnc2xhMDIuMDJfcnZzY2FuJywKICAgICAgICAgICAgICAgJ3NsYTEzLjE1X3ZrJywKICAgICAgICAgICAgICAgJ20wODVfc3RhbmRvcnRlX3JobCddLAogICAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgICAgMSksCiAgICAgICAgICAgICAoWydtMDU2X2l0LWdlYmFldWRlbWFuYWdlbWVudF9ub3JkJywKICAgICAgICAgICAgICAgJ3NsYTEzLjE2X3ZrJywKICAgICAgICAgICAgICAgJ3NsYTA1LjAxX3J2cmVncmVzcycsCiAgICAgICAgICAgICAgICdtMDIyX3NsYV9ic2gnLAogICAgICAgICAgICAgICAnbTAyNV9zdy1tYW5hZ2VtZW50JywKICAgICAgICAgICAgICAgJ3NsYTAyLjAxX3J2cHVyJywKICAgICAgICAgICAgICAgJ20wMjJfc2xhX2V4dCcsCiAgICAgICAgICAgICAgICdzbGExMy4wNV9tZG0nLAogICAgICAgICAgICAgICAnbTAxMF9zdGFuZG9ydGVfbm9yZCddLAogICAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgICAgMiksCiAgICAgICAgICAgICAoWydtMDU2X2l0LWdlYmFldWRlbWFuYWdlbWVudF9ic2gnLAogICAgICAgICAgICAgICAnbTA1Nl9pdC1nZWJhZXVkZW1hbmFnZW1lbnRfd3N0ZicsCiAgICAgICAgICAgICAgICdzbGExMy4wN192aycsCiAgICAgICAgICAgICAgICdtMDU2X2l0LWdlYmFldWRlbWFuYWdlbWVudF9tZCcsCiAgICAgICAgICAgICAgICdtMDg1X3N0YW5kb3J0ZV9tZCcsCiAgICAgICAgICAgICAgICdtMDIyX3NsYV9yaGwnLAogICAgICAgICAgICAgICAndjk3MGwxNzInLAogICAgICAgICAgICAgICAnbTAxMF9zdGFuZG9ydGVfd3N0ZicsCiAgICAgICAgICAgICAgICd2OTc0bDAyMCddLAogICAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgICAgMyksCiAgICAgICAgICAgICAoWydtMDIyX3NsYV9tZCcsCiAgICAgICAgICAgICAgICdzbGExMy4xMV92aycsCiAgICAgICAgICAgICAgICdtMDEwX3N0YW5kb3J0ZV9yaGwnLAogICAgICAgICAgICAgICAndjk3MWwwMDgnLAogICAgICAgICAgICAgICAnc2xhMTMuMTRfdmsnLAogICAgICAgICAgICAgICAnc2xhMDQuMDFfcnZ0ZXh0JywKICAgICAgICAgICAgICAgJ20wNTZfaXQtZ2ViYWV1ZGVtYW5hZ2VtZW50X3JobCcsCiAgICAgICAgICAgICAgICdzbGEwOS4wM19hc3lzLm5ldCcsCiAgICAgICAgICAgICAgICdtMDg1X3N0YW5kb3J0ZV9ub3JkJ10sCiAgICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgICA0KSwKICAgICAgICAgICAgIChbJ3Y5N3hsazI3JywKICAgICAgICAgICAgICAgJ3NsYTAwLjA3X3JlbW90ZV9hY2Nlc3Nfb2xkZW5idXJnLWJyZW1lbicsCiAgICAgICAgICAgICAgICdzbGEwMC4wM192cG4tZWlud2FobF9iZXJsaW4tYnJhbmRlbmJ1cmcnLAogICAgICAgICAgICAgICAnc2xhMTMuMDJfbm90ZXMnLAogICAgICAgICAgICAgICAnc2xhMTMuMDlfdmsnLAogICAgICAgICAgICAgICAnbTAyMl9zbGFfbm9yZCcsCiAgICAgICAgICAgICAgICd2OTc3bDAyMCcsCiAgICAgICAgICAgICAgICdzbGExMy4xMF92aycsCiAgICAgICAgICAgICAgICdzbGExMy4xM192aycsCiAgICAgICAgICAgICAgICdzbGExMC4wMV9lYmFua2luZycsCiAgICAgICAgICAgICAgICdtMDIyX3NsYV9vbGhiJywKICAgICAgICAgICAgICAgJ3NsYTEwLjA0X3J2bG1zJywKICAgICAgICAgICAgICAgJ3NsYTEwLjAyX2dpcyddLAogICAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgICAgNSldLAogJ2VudHJ5JzogKFsndjk3eGxrMjcnLAogICAgICAgICAgICAnc2xhMDAuMDdfcmVtb3RlX2FjY2Vzc19vbGRlbmJ1cmctYnJlbWVuJywKICAgICAgICAgICAgJ3NsYTAwLjAzX3Zwbi1laW53YWhsX2Jlcmxpbi1icmFuZGVuYnVyZycsCiAgICAgICAgICAgICdzbGExMy4wMl9ub3RlcycsCiAgICAgICAgICAgICdzbGExMy4wOV92aycsCiAgICAgICAgICAgICdtMDIyX3NsYV9ub3JkJywKICAgICAgICAgICAgJ3Y5NzdsMDIwJywKICAgICAgICAgICAgJ3NsYTEzLjEwX3ZrJywKICAgICAgICAgICAgJ3NsYTEzLjEzX3ZrJywKICAgICAgICAgICAgJ3NsYTEwLjAxX2ViYW5raW5nJywKICAgICAgICAgICAgJ20wMjJfc2xhX29saGInLAogICAgICAgICAgICAnc2xhMTAuMDRfcnZsbXMnLAogICAgICAgICAgICAnc2xhMTAuMDJfZ2lzJ10sCiAgICAgICAgICAgTm9uZSwKICAgICAgICAgICA1KSwKICdlcnJvcnMnOiBbRXhjZXB0aW9uKCdUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6XG4gIEZpbGUgIi9vbWQvc2l0ZXMvd2F0by9saWIvcHl0aG9uMy9jbWsvYmFzZS9jZWUvbWljcm9jb3JlX2NvbmZpZy5weSIsIGxpbmUgMjE3NywgaW4gX2hvc3RzX3dvcmtlclxuICAgIGhvc3RzX2RhdGEgPSBfY29tcHV0ZV93b3JrZXJfaG9zdHNfZGF0YShcbiAgICAgICAgICAgICAgICAgXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXG4gIEZpbGUgIi9vbWQvc2l0ZXMvd2F0by9saWIvcHl0aG9uMy9jbWsvYmFzZS9jZWUvbWljcm9jb3JlX2NvbmZpZy5weSIsIGxpbmUgMjA2NSwgaW4gX2NvbXB1dGVfd29ya2VyX2hvc3RzX2RhdGFcbiAgICBoZWxwZXJfY29uZmlnX21hbmFnZXIuZ2V0X2hvc3RfZGF0YShcbiAgRmlsZSAiL29tZC9zaXRlcy93YXRvL2xpYi9weXRob24zL2Ntay9iYXNlL2NlZS9taWNyb2NvcmVfY29uZmlnLnB5IiwgbGluZSAzMDUwLCBpbiBnZXRfaG9zdF9kYXRhXG4gICAgaG9zdF9jbGFzcyhjb25maWdfY2FjaGUsIGhvc3RuYW1lLCBob3N0c19jb25maWcsIHBhc3N3b3JkcywgaXBfYWRkcmVzc19vZiksXG4gICAgXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5cbiAgRmlsZSAiL29tZC9zaXRlcy93YXRvL2xpYi9weXRob24zL2Ntay9iYXNlL2NlZS9taWNyb2NvcmVfY29uZmlnLnB5IiwgbGluZSAxMzIwLCBpbiBfX2luaXRfX1xuICAgIGhvc3RfYXR0cnM9Y29uZmlnX2NhY2hlLmdldF9ob3N0X2F0dHJpYnV0ZXMoXG4gICAgICAgICAgICAgICBeXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5cbiAgRmlsZSAiL29tZC9zaXRlcy93YXRvL2xpYi9weXRob24zL2Ntay9iYXNlL2NvbmZpZy5weSIsIGxpbmUgMzUyMSwgaW4gZ2V0X2hvc3RfYXR0cmlidXRlc1xuICAgIGF0dHJzID0gc2VsZi5leHRyYV9ob3N0X2F0dHJpYnV0ZXMoaG9zdG5hbWUpXG4gICAgICAgICAgICBeXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5cbiAgRmlsZSAiL29tZC9zaXRlcy93YXRvL2xpYi9weXRob24zL2Ntay9iYXNlL2NvbmZpZy5weSIsIGxpbmUgMjM1MywgaW4gZXh0cmFfaG9zdF9hdHRyaWJ1dGVzXG4gICAgdmFsdWVzID0gc2VsZi5ydWxlc2V0X21hdGNoZXIuZ2V0X2hvc3RfdmFsdWVzKGhvc3RfbmFtZSwgcnVsZXNldClcbiAgICAgICAgICAgICBeXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXlxuICBGaWxlICIvb21kL3NpdGVzL3dhdG8vbGliL3B5dGhvbjMvY21rL3V0aWxzL3J1bGVzZXRzL3J1bGVzZXRfbWF0Y2hlci5weSIsIGxpbmUgMjU0LCBpbiBnZXRfaG9zdF92YWx1ZXNcbiAgICBzZWxmLnJ1bGVzZXRfb3B0aW1pemVyLmdldF9ob3N0X3J1bGVzZXQocnVsZXNldCwgd2l0aF9mb3JlaWduX2hvc3RzKVxuICBGaWxlICIvb21kL3NpdGVzL3dhdG8vbGliL3B5dGhvbjMvY21rL3V0aWxzL3J1bGVzZXRzL3J1bGVzZXRfbWF0Y2hlci5weSIsIGxpbmUgNTgxLCBpbiBnZXRfaG9zdF9ydWxlc2V0XG4gICAgcmV0dXJuIHNlbGYuX19ob3N0X3J1bGVzZXRfY2FjaGUuc2V0ZGVmYXVsdChjYWNoZV9pZCwgX2ltcGwocnVsZXNldCwgd2l0aF9mb3JlaWduX2hvc3RzKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXG4gIEZpbGUgIi9vbWQvc2l0ZXMvd2F0by9saWIvcHl0aG9uMy9jbWsvdXRpbHMvcnVsZXNldHMvcnVsZXNldF9tYXRjaGVyLnB5IiwgbGluZSA1NzIsIGluIF9pbXBsXG4gICAgZm9yIGhvc3RuYW1lIGluIHNlbGYuX2FsbF9tYXRjaGluZ19ob3N0cyhydWxlWyJjb25kaXRpb24iXSwgd2l0aF9mb3JlaWduX2hvc3RzKTpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH5+fn5eXl5eXl5eXl5eXl5eXG5UeXBlRXJyb3I6IHR1cGxlIGluZGljZXMgbXVzdCBiZSBpbnRlZ2VycyBvciBzbGljZXMsIG5vdCBzdHJcbicpLAogICAgICAgICAgICBFeGNlcHRpb24oJ1RyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KTpcbiAgRmlsZSAiL29tZC9zaXRlcy93YXRvL2xpYi9weXRob24zL2Ntay9iYXNlL2NlZS9taWNyb2NvcmVfY29uZmlnLnB5IiwgbGluZSAyMTc3LCBpbiBfaG9zdHNfd29ya2VyXG4gICAgaG9zdHNfZGF0YSA9IF9jb21wdXRlX3dvcmtlcl9ob3N0c19kYXRhKFxuICAgICAgICAgICAgICAgICBeXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5cbiAgRmlsZSAiL29tZC9zaXRlcy93YXRvL2xpYi9weXRob24zL2Ntay9iYXNlL2NlZS9taWNyb2NvcmVfY29uZmlnLnB5IiwgbGluZSAyMDY1LCBpbiBfY29tcHV0ZV93b3JrZXJfaG9zdHNfZGF0YVxuICAgIGhlbHBlcl9jb25maWdfbWFuYWdlci5nZXRfaG9zdF9kYXRhKFxuICBGaWxlICIvb21kL3NpdGVzL3dhdG8vbGliL3B5dGhvbjMvY21rL2Jhc2UvY2VlL21pY3JvY29yZV9jb25maWcucHkiLCBsaW5lIDMwNTAsIGluIGdldF9ob3N0X2RhdGFcbiAgICBob3N0X2NsYXNzKGNvbmZpZ19jYWNoZSwgaG9zdG5hbWUsIGhvc3RzX2NvbmZpZywgcGFzc3dvcmRzLCBpcF9hZGRyZXNzX29mKSxcbiAgICBeXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXlxuICBGaWxlICIvb21kL3NpdGVzL3dhdG8vbGliL3B5dGhvbjMvY21rL2Jhc2UvY2VlL21pY3JvY29yZV9jb25maWcucHkiLCBsaW5lIDEzMjAsIGluIF9faW5pdF9fXG4gICAgaG9zdF9hdHRycz1jb25maWdfY2FjaGUuZ2V0X2hvc3RfYXR0cmlidXRlcyhcbiAgICAgICAgICAgICAgIF5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXlxuICBGaWxlICIvb21kL3NpdGVzL3dhdG8vbGliL3B5dGhvbjMvY21rL2Jhc2UvY29uZmlnLnB5IiwgbGluZSAzNTIxLCBpbiBnZXRfaG9zdF9hdHRyaWJ1dGVzXG4gICAgYXR0cnMgPSBzZWxmLmV4dHJhX2hvc3RfYXR0cmlidXRlcyhob3N0bmFtZSlcbiAgICAgICAgICAgIF5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXlxuICBGaWxlICIvb21kL3NpdGVzL3dhdG8vbGliL3B5dGhvbjMvY21rL2Jhc2UvY29uZmlnLnB5IiwgbGluZSAyMzUzLCBpbiBleHRyYV9ob3N0X2F0dHJpYnV0ZXNcbiAgICB2YWx1ZXMgPSBzZWxmLnJ1bGVzZXRfbWF0Y2hlci5nZXRfaG9zdF92YWx1ZXMoaG9zdF9uYW1lLCBydWxlc2V0KVxuICAgICAgICAgICAgIF5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXG4gIEZpbGUgIi9vbWQvc2l0ZXMvd2F0by9saWIvcHl0aG9uMy9jbWsvdXRpbHMvcnVsZXNldHMvcnVsZXNldF9tYXRjaGVyLnB5IiwgbGluZSAyNTQsIGluIGdldF9ob3N0X3ZhbHVlc1xuICAgIHNlbGYucnVsZXNldF9vcHRpbWl6ZXIuZ2V0X2hvc3RfcnVsZXNldChydWxlc2V0LCB3aXRoX2ZvcmVpZ25faG9zdHMpXG4gIEZpbGUgIi9vbWQvc2l0ZXMvd2F0by9saWIvcHl0aG9uMy9jbWsvdXRpbHMvcnVsZXNldHMvcnVsZXNldF9tYXRjaGVyLnB5IiwgbGluZSA1ODEsIGluIGdldF9ob3N0X3J1bGVzZXRcbiAgICByZXR1cm4gc2VsZi5fX2hvc3RfcnVsZXNldF9jYWNoZS5zZXRkZWZhdWx0KGNhY2hlX2lkLCBfaW1wbChydWxlc2V0LCB3aXRoX2ZvcmVpZ25faG9zdHMpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5cbiAgRmlsZSAiL29tZC9zaXRlcy93YXRvL2xpYi9weXRob24zL2Ntay91dGlscy9ydWxlc2V0cy9ydWxlc2V0X21hdGNoZXIucHkiLCBsaW5lIDU3MiwgaW4gX2ltcGxcbiAgICBmb3IgaG9zdG5hbWUgaW4gc2VsZi5fYWxsX21hdGNoaW5nX2hvc3RzKHJ1bGVbImNvbmRpdGlvbiJdLCB3aXRoX2ZvcmVpZ25faG9zdHMpOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfn5+fl5eXl5eXl5eXl5eXl5cblR5cGVFcnJvcjogdHVwbGUgaW5kaWNlcyBtdXN0IGJlIGludGVnZXJzIG9yIHNsaWNlcywgbm90IHN0clxuJyksCiAgICAgICAgICAgIEV4Y2VwdGlvbignVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOlxuICBGaWxlICIvb21kL3NpdGVzL3dhdG8vbGliL3B5dGhvbjMvY21rL2Jhc2UvY2VlL21pY3JvY29yZV9jb25maWcucHkiLCBsaW5lIDIxNzcsIGluIF9ob3N0c193b3JrZXJcbiAgICBob3N0c19kYXRhID0gX2NvbXB1dGVfd29ya2VyX2hvc3RzX2RhdGEoXG4gICAgICAgICAgICAgICAgIF5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXlxuICBGaWxlICIvb21kL3NpdGVzL3dhdG8vbGliL3B5dGhvbjMvY21rL2Jhc2UvY2VlL21pY3JvY29yZV9jb25maWcucHkiLCBsaW5lIDIwNjUsIGluIF9jb21wdXRlX3dvcmtlcl9ob3N0c19kYXRhXG4gICAgaGVscGVyX2NvbmZpZ19tYW5hZ2VyLmdldF9ob3N0X2RhdGEoXG4gIEZpbGUgIi9vbWQvc2l0ZXMvd2F0by9saWIvcHl0aG9uMy9jbWsvYmFzZS9jZWUvbWljcm9jb3JlX2NvbmZpZy5weSIsIGxpbmUgMzA1MCwgaW4gZ2V0X2hvc3RfZGF0YVxuICAgIGhvc3RfY2xhc3MoY29uZmlnX2NhY2hlLCBob3N0bmFtZSwgaG9zdHNfY29uZmlnLCBwYXNzd29yZHMsIGlwX2FkZHJlc3Nfb2YpLFxuICAgIF5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXG4gIEZpbGUgIi9vbWQvc2l0ZXMvd2F0by9saWIvcHl0aG9uMy9jbWsvYmFzZS9jZWUvbWljcm9jb3JlX2NvbmZpZy5weSIsIGxpbmUgMTMyMCwgaW4gX19pbml0X19cbiAgICBob3N0X2F0dHJzPWNvbmZpZ19jYWNoZS5nZXRfaG9zdF9hdHRyaWJ1dGVzKFxuICAgICAgICAgICAgICAgXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXG4gIEZpbGUgIi9vbWQvc2l0ZXMvd2F0by9saWIvcHl0aG9uMy9jbWsvYmFzZS9jb25maWcucHkiLCBsaW5lIDM1MjEsIGluIGdldF9ob3N0X2F0dHJpYnV0ZXNcbiAgICBhdHRycyA9IHNlbGYuZXh0cmFfaG9zdF9hdHRyaWJ1dGVzKGhvc3RuYW1lKVxuICAgICAgICAgICAgXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXG4gIEZpbGUgIi9vbWQvc2l0ZXMvd2F0by9saWIvcHl0aG9uMy9jbWsvYmFzZS9jb25maWcucHkiLCBsaW5lIDIzNTMsIGluIGV4dHJhX2hvc3RfYXR0cmlidXRlc1xuICAgIHZhbHVlcyA9IHNlbGYucnVsZXNldF9tYXRjaGVyLmdldF9ob3N0X3ZhbHVlcyhob3N0X25hbWUsIHJ1bGVzZXQpXG4gICAgICAgICAgICAgXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5cbiAgRmlsZSAiL29tZC9zaXRlcy93YXRvL2xpYi9weXRob24zL2Ntay91dGlscy9ydWxlc2V0cy9ydWxlc2V0X21hdGNoZXIucHkiLCBsaW5lIDI1NCwgaW4gZ2V0X2hvc3RfdmFsdWVzXG4gICAgc2VsZi5ydWxlc2V0X29wdGltaXplci5nZXRfaG9zdF9ydWxlc2V0KHJ1bGVzZXQsIHdpdGhfZm9yZWlnbl9ob3N0cylcbiAgRmlsZSAiL29tZC9zaXRlcy93YXRvL2xpYi9weXRob24zL2Ntay91dGlscy9ydWxlc2V0cy9ydWxlc2V0X21hdGNoZXIucHkiLCBsaW5lIDU4MSwgaW4gZ2V0X2hvc3RfcnVsZXNldFxuICAgIHJldHVybiBzZWxmLl9faG9zdF9ydWxlc2V0X2NhY2hlLnNldGRlZmF1bHQoY2FjaGVfaWQsIF9pbXBsKHJ1bGVzZXQsIHdpdGhfZm9yZWlnbl9ob3N0cykpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXlxuICBGaWxlICIvb21kL3NpdGVzL3dhdG8vbGliL3B5dGhvbjMvY21rL3V0aWxzL3J1bGVzZXRzL3J1bGVzZXRfbWF0Y2hlci5weSIsIGxpbmUgNTcyLCBpbiBfaW1wbFxuICAgIGZvciBob3N0bmFtZSBpbiBzZWxmLl9hbGxfbWF0Y2hpbmdfaG9zdHMocnVsZVsiY29uZGl0aW9uIl0sIHdpdGhfZm9yZWlnbl9ob3N0cyk6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB+fn5+Xl5eXl5eXl5eXl5eXlxuVHlwZUVycm9yOiB0dXBsZSBpbmRpY2VzIG11c3QgYmUgaW50ZWdlcnMgb3Igc2xpY2VzLCBub3Qgc3RyXG4nKSwKICAgICAgICAgICAgRXhjZXB0aW9uKCdUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6XG4gIEZpbGUgIi9vbWQvc2l0ZXMvd2F0by9saWIvcHl0aG9uMy9jbWsvYmFzZS9jZWUvbWljcm9jb3JlX2NvbmZpZy5weSIsIGxpbmUgMjE3NywgaW4gX2hvc3RzX3dvcmtlclxuICAgIGhvc3RzX2RhdGEgPSBfY29tcHV0ZV93b3JrZXJfaG9zdHNfZGF0YShcbiAgICAgICAgICAgICAgICAgXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXG4gIEZpbGUgIi9vbWQvc2l0ZXMvd2F0by9saWIvcHl0aG9uMy9jbWsvYmFzZS9jZWUvbWljcm9jb3JlX2NvbmZpZy5weSIsIGxpbmUgMjA2NSwgaW4gX2NvbXB1dGVfd29ya2VyX2hvc3RzX2RhdGFcbiAgICBoZWxwZXJfY29uZmlnX21hbmFnZXIuZ2V0X2hvc3RfZGF0YShcbiAgRmlsZSAiL29tZC9zaXRlcy93YXRvL2xpYi9weXRob24zL2Ntay9iYXNlL2NlZS9taWNyb2NvcmVfY29uZmlnLnB5IiwgbGluZSAzMDUwLCBpbiBnZXRfaG9zdF9kYXRhXG4gICAgaG9zdF9jbGFzcyhjb25maWdfY2FjaGUsIGhvc3RuYW1lLCBob3N0c19jb25maWcsIHBhc3N3b3JkcywgaXBfYWRkcmVzc19vZiksXG4gICAgXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5cbiAgRmlsZSAiL29tZC9zaXRlcy93YXRvL2xpYi9weXRob24zL2Ntay9iYXNlL2NlZS9taWNyb2NvcmVfY29uZmlnLnB5IiwgbGluZSAxMzIwLCBpbiBfX2luaXRfX1xuICAgIGhvc3RfYXR0cnM9Y29uZmlnX2NhY2hlLmdldF9ob3N0X2F0dHJpYnV0ZXMoXG4gICAgICAgICAgICAgICBeXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5cbiAgRmlsZSAiL29tZC9zaXRlcy93YXRvL2xpYi9weXRob24zL2Ntay9iYXNlL2NvbmZpZy5weSIsIGxpbmUgMzUyMSwgaW4gZ2V0X2hvc3RfYXR0cmlidXRlc1xuICAgIGF0dHJzID0gc2VsZi5leHRyYV9ob3N0X2F0dHJpYnV0ZXMoaG9zdG5hbWUpXG4gICAgICAgICAgICBeXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5cbiAgRmlsZSAiL29tZC9zaXRlcy93YXRvL2xpYi9weXRob24zL2Ntay9iYXNlL2NvbmZpZy5weSIsIGxpbmUgMjM1MywgaW4gZXh0cmFfaG9zdF9hdHRyaWJ1dGVzXG4gICAgdmFsdWVzID0gc2VsZi5ydWxlc2V0X21hdGNoZXIuZ2V0X2hvc3RfdmFsdWVzKGhvc3RfbmFtZSwgcnVsZXNldClcbiAgICAgICAgICAgICBeXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXlxuICBGaWxlICIvb21kL3NpdGVzL3dhdG8vbGliL3B5dGhvbjMvY21rL3V0aWxzL3J1bGVzZXRzL3J1bGVzZXRfbWF0Y2hlci5weSIsIGxpbmUgMjU0LCBpbiBnZXRfaG9zdF92YWx1ZXNcbiAgICBzZWxmLnJ1bGVzZXRfb3B0aW1pemVyLmdldF9ob3N0X3J1bGVzZXQocnVsZXNldCwgd2l0aF9mb3JlaWduX2hvc3RzKVxuICBGaWxlICIvb21kL3NpdGVzL3dhdG8vbGliL3B5dGhvbjMvY21rL3V0aWxzL3J1bGVzZXRzL3J1bGVzZXRfbWF0Y2hlci5weSIsIGxpbmUgNTgxLCBpbiBnZXRfaG9zdF9ydWxlc2V0XG4gICAgcmV0dXJuIHNlbGYuX19ob3N0X3J1bGVzZXRfY2FjaGUuc2V0ZGVmYXVsdChjYWNoZV9pZCwgX2ltcGwocnVsZXNldCwgd2l0aF9mb3JlaWduX2hvc3RzKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXG4gIEZpbGUgIi9vbWQvc2l0ZXMvd2F0by9saWIvcHl0aG9uMy9jbWsvdXRpbHMvcnVsZXNldHMvcnVsZXNldF9tYXRjaGVyLnB5IiwgbGluZSA1NzIsIGluIF9pbXBsXG4gICAgZm9yIGhvc3RuYW1lIGluIHNlbGYuX2FsbF9tYXRjaGluZ19ob3N0cyhydWxlWyJjb25kaXRpb24iXSwgd2l0aF9mb3JlaWduX2hvc3RzKTpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH5+fn5eXl5eXl5eXl5eXl5eXG5UeXBlRXJyb3I6IHR1cGxlIGluZGljZXMgbXVzdCBiZSBpbnRlZ2VycyBvciBzbGljZXMsIG5vdCBzdHJcbicpLAogICAgICAgICAgICBFeGNlcHRpb24oJ1RyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KTpcbiAgRmlsZSAiL29tZC9zaXRlcy93YXRvL2xpYi9weXRob24zL2Ntay9iYXNlL2NlZS9taWNyb2NvcmVfY29uZmlnLnB5IiwgbGluZSAyMTc3LCBpbiBfaG9zdHNfd29ya2VyXG4gICAgaG9zdHNfZGF0YSA9IF9jb21wdXRlX3dvcmtlcl9ob3N0c19kYXRhKFxuICAgICAgICAgICAgICAgICBeXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5cbiAgRmlsZSAiL29tZC9zaXRlcy93YXRvL2xpYi9weXRob24zL2Ntay9iYXNlL2NlZS9taWNyb2NvcmVfY29uZmlnLnB5IiwgbGluZSAyMDY1LCBpbiBfY29tcHV0ZV93b3JrZXJfaG9zdHNfZGF0YVxuICAgIGhlbHBlcl9jb25maWdfbWFuYWdlci5nZXRfaG9zdF9kYXRhKFxuICBGaWxlICIvb21kL3NpdGVzL3dhdG8vbGliL3B5dGhvbjMvY21rL2Jhc2UvY2VlL21pY3JvY29yZV9jb25maWcucHkiLCBsaW5lIDMwNTAsIGluIGdldF9ob3N0X2RhdGFcbiAgICBob3N0X2NsYXNzKGNvbmZpZ19jYWNoZSwgaG9zdG5hbWUsIGhvc3RzX2NvbmZpZywgcGFzc3dvcmRzLCBpcF9hZGRyZXNzX29mKSxcbiAgICBeXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXlxuICBGaWxlICIvb21kL3NpdGVzL3dhdG8vbGliL3B5dGhvbjMvY21rL2Jhc2UvY2VlL21pY3JvY29yZV9jb25maWcucHkiLCBsaW5lIDEzMjAsIGluIF9faW5pdF9fXG4gICAgaG9zdF9hdHRycz1jb25maWdfY2FjaGUuZ2V0X2hvc3RfYXR0cmlidXRlcyhcbiAgICAgICAgICAgICAgIF5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXlxuICBGaWxlICIvb21kL3NpdGVzL3dhdG8vbGliL3B5dGhvbjMvY21rL2Jhc2UvY29uZmlnLnB5IiwgbGluZSAzNTIxLCBpbiBnZXRfaG9zdF9hdHRyaWJ1dGVzXG4gICAgYXR0cnMgPSBzZWxmLmV4dHJhX2hvc3RfYXR0cmlidXRlcyhob3N0bmFtZSlcbiAgICAgICAgICAgIF5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXlxuICBGaWxlICIvb21kL3NpdGVzL3dhdG8vbGliL3B5dGhvbjMvY21rL2Jhc2UvY29uZmlnLnB5IiwgbGluZSAyMzUzLCBpbiBleHRyYV9ob3N0X2F0dHJpYnV0ZXNcbiAgICB2YWx1ZXMgPSBzZWxmLnJ1bGVzZXRfbWF0Y2hlci5nZXRfaG9zdF92YWx1ZXMoaG9zdF9uYW1lLCBydWxlc2V0KVxuICAgICAgICAgICAgIF5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXG4gIEZpbGUgIi9vbWQvc2l0ZXMvd2F0by9saWIvcHl0aG9uMy9jbWsvdXRpbHMvcnVsZXNldHMvcnVsZXNldF9tYXRjaGVyLnB5IiwgbGluZSAyNTQsIGluIGdldF9ob3N0X3ZhbHVlc1xuICAgIHNlbGYucnVsZXNldF9vcHRpbWl6ZXIuZ2V0X2hvc3RfcnVsZXNldChydWxlc2V0LCB3aXRoX2ZvcmVpZ25faG9zdHMpXG4gIEZpbGUgIi9vbWQvc2l0ZXMvd2F0by9saWIvcHl0aG9uMy9jbWsvdXRpbHMvcnVsZXNldHMvcnVsZXNldF9tYXRjaGVyLnB5IiwgbGluZSA1ODEsIGluIGdldF9ob3N0X3J1bGVzZXRcbiAgICByZXR1cm4gc2VsZi5fX2hvc3RfcnVsZXNldF9jYWNoZS5zZXRkZWZhdWx0KGNhY2hlX2lkLCBfaW1wbChydWxlc2V0LCB3aXRoX2ZvcmVpZ25faG9zdHMpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5cbiAgRmlsZSAiL29tZC9zaXRlcy93YXRvL2xpYi9weXRob24zL2Ntay91dGlscy9ydWxlc2V0cy9ydWxlc2V0X21hdGNoZXIucHkiLCBsaW5lIDU3MiwgaW4gX2ltcGxcbiAgICBmb3IgaG9zdG5hbWUgaW4gc2VsZi5fYWxsX21hdGNoaW5nX2hvc3RzKHJ1bGVbImNvbmRpdGlvbiJdLCB3aXRoX2ZvcmVpZ25faG9zdHMpOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfn5+fl5eXl5eXl5eXl5eXl5cblR5cGVFcnJvcjogdHVwbGUgaW5kaWNlcyBtdXN0IGJlIGludGVnZXJzIG9yIHNsaWNlcywgbm90IHN0clxuJyksCiAgICAgICAgICAgIEV4Y2VwdGlvbignVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOlxuICBGaWxlICIvb21kL3NpdGVzL3dhdG8vbGliL3B5dGhvbjMvY21rL2Jhc2UvY2VlL21pY3JvY29yZV9jb25maWcucHkiLCBsaW5lIDIxNzcsIGluIF9ob3N0c193b3JrZXJcbiAgICBob3N0c19kYXRhID0gX2NvbXB1dGVfd29ya2VyX2hvc3RzX2RhdGEoXG4gICAgICAgICAgICAgICAgIF5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXlxuICBGaWxlICIvb21kL3NpdGVzL3dhdG8vbGliL3B5dGhvbjMvY21rL2Jhc2UvY2VlL21pY3JvY29yZV9jb25maWcucHkiLCBsaW5lIDIwNjUsIGluIF9jb21wdXRlX3dvcmtlcl9ob3N0c19kYXRhXG4gICAgaGVscGVyX2NvbmZpZ19tYW5hZ2VyLmdldF9ob3N0X2RhdGEoXG4gIEZpbGUgIi9vbWQvc2l0ZXMvd2F0by9saWIvcHl0aG9uMy9jbWsvYmFzZS9jZWUvbWljcm9jb3JlX2NvbmZpZy5weSIsIGxpbmUgMzA1MCwgaW4gZ2V0X2hvc3RfZGF0YVxuICAgIGhvc3RfY2xhc3MoY29uZmlnX2NhY2hlLCBob3N0bmFtZSwgaG9zdHNfY29uZmlnLCBwYXNzd29yZHMsIGlwX2FkZHJlc3Nfb2YpLFxuICAgIF5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXG4gIEZpbGUgIi9vbWQvc2l0ZXMvd2F0by9saWIvcHl0aG9uMy9jbWsvYmFzZS9jZWUvbWljcm9jb3JlX2NvbmZpZy5weSIsIGxpbmUgMTMyMCwgaW4gX19pbml0X19cbiAgICBob3N0X2F0dHJzPWNvbmZpZ19jYWNoZS5nZXRfaG9zdF9hdHRyaWJ1dGVzKFxuICAgICAgICAgICAgICAgXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXG4gIEZpbGUgIi9vbWQvc2l0ZXMvd2F0by9saWIvcHl0aG9uMy9jbWsvYmFzZS9jb25maWcucHkiLCBsaW5lIDM1MjEsIGluIGdldF9ob3N0X2F0dHJpYnV0ZXNcbiAgICBhdHRycyA9IHNlbGYuZXh0cmFfaG9zdF9hdHRyaWJ1dGVzKGhvc3RuYW1lKVxuICAgICAgICAgICAgXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXG4gIEZpbGUgIi9vbWQvc2l0ZXMvd2F0by9saWIvcHl0aG9uMy9jbWsvYmFzZS9jb25maWcucHkiLCBsaW5lIDIzNTMsIGluIGV4dHJhX2hvc3RfYXR0cmlidXRlc1xuICAgIHZhbHVlcyA9IHNlbGYucnVsZXNldF9tYXRjaGVyLmdldF9ob3N0X3ZhbHVlcyhob3N0X25hbWUsIHJ1bGVzZXQpXG4gICAgICAgICAgICAgXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5cbiAgRmlsZSAiL29tZC9zaXRlcy93YXRvL2xpYi9weXRob24zL2Ntay91dGlscy9ydWxlc2V0cy9ydWxlc2V0X21hdGNoZXIucHkiLCBsaW5lIDI1NCwgaW4gZ2V0X2hvc3RfdmFsdWVzXG4gICAgc2VsZi5ydWxlc2V0X29wdGltaXplci5nZXRfaG9zdF9ydWxlc2V0KHJ1bGVzZXQsIHdpdGhfZm9yZWlnbl9ob3N0cylcbiAgRmlsZSAiL29tZC9zaXRlcy93YXRvL2xpYi9weXRob24zL2Ntay91dGlscy9ydWxlc2V0cy9ydWxlc2V0X21hdGNoZXIucHkiLCBsaW5lIDU4MSwgaW4gZ2V0X2hvc3RfcnVsZXNldFxuICAgIHJldHVybiBzZWxmLl9faG9zdF9ydWxlc2V0X2NhY2hlLnNldGRlZmF1bHQoY2FjaGVfaWQsIF9pbXBsKHJ1bGVzZXQsIHdpdGhfZm9yZWlnbl9ob3N0cykpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXlxuICBGaWxlICIvb21kL3NpdGVzL3dhdG8vbGliL3B5dGhvbjMvY21rL3V0aWxzL3J1bGVzZXRzL3J1bGVzZXRfbWF0Y2hlci5weSIsIGxpbmUgNTcyLCBpbiBfaW1wbFxuICAgIGZvciBob3N0bmFtZSBpbiBzZWxmLl9hbGxfbWF0Y2hpbmdfaG9zdHMocnVsZVsiY29uZGl0aW9uIl0sIHdpdGhfZm9yZWlnbl9ob3N0cyk6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB+fn5+Xl5eXl5eXl5eXl5eXlxuVHlwZUVycm9yOiB0dXBsZSBpbmRpY2VzIG11c3QgYmUgaW50ZWdlcnMgb3Igc2xpY2VzLCBub3Qgc3RyXG4nKV0sCiAnZnVuY190b19jYWxsJzogPGZ1bmN0aW9uIF9jb21wdXRlX2hvc3RzX2NvbmZpZ3VyYXRpb25zLjxsb2NhbHM+LnBhcnRpYWxfaG9zdHNfd29ya2VyIGF0IDB4N2ZiMDY2ZjBiYzQwPiwKICdwJzogPFByb2Nlc3MgbmFtZT0nUHJvY2Vzcy02JyBwaWQ9NTkzMjQ5IHBhcmVudD01OTMwOTIgc3RvcHBlZCBleGl0Y29kZT0wPiwKICdwcm9jZXNzZXMnOiBbPFByb2Nlc3MgbmFtZT0nUHJvY2Vzcy0xJyBwaWQ9NTkzMjQwIHBhcmVudD01OTMwOTIgc3RvcHBlZCBleGl0Y29kZT0wPiwKICAgICAgICAgICAgICAgPFByb2Nlc3MgbmFtZT0nUHJvY2Vzcy0yJyBwaWQ9NTkzMjQxIHBhcmVudD01OTMwOTIgc3RvcHBlZCBleGl0Y29kZT0wPiwKICAgICAgICAgICAgICAgPFByb2Nlc3MgbmFtZT0nUHJvY2Vzcy0zJyBwaWQ9NTkzMjQzIHBhcmVudD01OTMwOTIgc3RvcHBlZCBleGl0Y29kZT0wPiwKICAgICAgICAgICAgICAgPFByb2Nlc3MgbmFtZT0nUHJvY2Vzcy00JyBwaWQ9NTkzMjQ1IHBhcmVudD01OTMwOTIgc3RvcHBlZCBleGl0Y29kZT0wPiwKICAgICAgICAgICAgICAgPFByb2Nlc3MgbmFtZT0nUHJvY2Vzcy01JyBwaWQ9NTkzMjQ3IHBhcmVudD01OTMwOTIgc3RvcHBlZCBleGl0Y29kZT0wPiwKICAgICAgICAgICAgICAgPFByb2Nlc3MgbmFtZT0nUHJvY2Vzcy02JyBwaWQ9NTkzMjQ5IHBhcmVudD01OTMwOTIgc3RvcHBlZCBleGl0Y29kZT0wPl0sCiAncSc6IDxtdWx0aXByb2Nlc3NpbmcucXVldWVzLlF1ZXVlIG9iamVjdCBhdCAweDdmYjA2NmQ1M2UzMD4sCiAncmV0JzogX1F1ZXVlV29ya2VyUmVzdWx0KHJlc3VsdD1Ob25lLAogICAgICAgICAgICAgICAgICAgICAgICAgICB3YXJuaW5ncz1bXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3I9RXhjZXB0aW9uKCdUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6XG4gIEZpbGUgIi9vbWQvc2l0ZXMvd2F0by9saWIvcHl0aG9uMy9jbWsvYmFzZS9jZWUvbWljcm9jb3JlX2NvbmZpZy5weSIsIGxpbmUgMjE3NywgaW4gX2hvc3RzX3dvcmtlclxuICAgIGhvc3RzX2RhdGEgPSBfY29tcHV0ZV93b3JrZXJfaG9zdHNfZGF0YShcbiAgICAgICAgICAgICAgICAgXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXG4gIEZpbGUgIi9vbWQvc2l0ZXMvd2F0by9saWIvcHl0aG9uMy9jbWsvYmFzZS9jZWUvbWljcm9jb3JlX2NvbmZpZy5weSIsIGxpbmUgMjA2NSwgaW4gX2NvbXB1dGVfd29ya2VyX2hvc3RzX2RhdGFcbiAgICBoZWxwZXJfY29uZmlnX21hbmFnZXIuZ2V0X2hvc3RfZGF0YShcbiAgRmlsZSAiL29tZC9zaXRlcy93YXRvL2xpYi9weXRob24zL2Ntay9iYXNlL2NlZS9taWNyb2NvcmVfY29uZmlnLnB5IiwgbGluZSAzMDUwLCBpbiBnZXRfaG9zdF9kYXRhXG4gICAgaG9zdF9jbGFzcyhjb25maWdfY2FjaGUsIGhvc3RuYW1lLCBob3N0c19jb25maWcsIHBhc3N3b3JkcywgaXBfYWRkcmVzc19vZiksXG4gICAgXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5cbiAgRmlsZSAiL29tZC9zaXRlcy93YXRvL2xpYi9weXRob24zL2Ntay9iYXNlL2NlZS9taWNyb2NvcmVfY29uZmlnLnB5IiwgbGluZSAxMzIwLCBpbiBfX2luaXRfX1xuICAgIGhvc3RfYXR0cnM9Y29uZmlnX2NhY2hlLmdldF9ob3N0X2F0dHJpYnV0ZXMoXG4gICAgICAgICAgICAgICBeXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5cbiAgRmlsZSAiL29tZC9zaXRlcy93YXRvL2xpYi9weXRob24zL2Ntay9iYXNlL2NvbmZpZy5weSIsIGxpbmUgMzUyMSwgaW4gZ2V0X2hvc3RfYXR0cmlidXRlc1xuICAgIGF0dHJzID0gc2VsZi5leHRyYV9ob3N0X2F0dHJpYnV0ZXMoaG9zdG5hbWUpXG4gICAgICAgICAgICBeXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5cbiAgRmlsZSAiL29tZC9zaXRlcy93YXRvL2xpYi9weXRob24zL2Ntay9iYXNlL2NvbmZpZy5weSIsIGxpbmUgMjM1MywgaW4gZXh0cmFfaG9zdF9hdHRyaWJ1dGVzXG4gICAgdmFsdWVzID0gc2VsZi5ydWxlc2V0X21hdGNoZXIuZ2V0X2hvc3RfdmFsdWVzKGhvc3RfbmFtZSwgcnVsZXNldClcbiAgICAgICAgICAgICBeXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXlxuICBGaWxlICIvb21kL3NpdGVzL3dhdG8vbGliL3B5dGhvbjMvY21rL3V0aWxzL3J1bGVzZXRzL3J1bGVzZXRfbWF0Y2hlci5weSIsIGxpbmUgMjU0LCBpbiBnZXRfaG9zdF92YWx1ZXNcbiAgICBzZWxmLnJ1bGVzZXRfb3B0aW1pemVyLmdldF9ob3N0X3J1bGVzZXQocnVsZXNldCwgd2l0aF9mb3JlaWduX2hvc3RzKVxuICBGaWxlICIvb21kL3NpdGVzL3dhdG8vbGliL3B5dGhvbjMvY21rL3V0aWxzL3J1bGVzZXRzL3J1bGVzZXRfbWF0Y2hlci5weSIsIGxpbmUgNTgxLCBpbiBnZXRfaG9zdF9ydWxlc2V0XG4gICAgcmV0dXJuIHNlbGYuX19ob3N0X3J1bGVzZXRfY2FjaGUuc2V0ZGVmYXVsdChjYWNoZV9pZCwgX2ltcGwocnVsZXNldCwgd2l0aF9mb3JlaWduX2hvc3RzKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXG4gIEZpbGUgIi9vbWQvc2l0ZXMvd2F0by9saWIvcHl0aG9uMy9jbWsvdXRpbHMvcnVsZXNldHMvcnVsZXNldF9tYXRjaGVyLnB5IiwgbGluZSA1NzIsIGluIF9pbXBsXG4gICAgZm9yIGhvc3RuYW1lIGluIHNlbGYuX2FsbF9tYXRjaGluZ19ob3N0cyhydWxlWyJjb25kaXRpb24iXSwgd2l0aF9mb3JlaWduX2hvc3RzKTpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH5+fn5eXl5eXl5eXl5eXl5eXG5UeXBlRXJyb3I6IHR1cGxlIGluZGljZXMgbXVzdCBiZSBpbnRlZ2VycyBvciBzbGljZXMsIG5vdCBzdHJcbicpKSwKICd3YXJuaW5ncyc6IFtdfQ==",
    "os": "Red Hat Enterprise Linux release 9.7 (Plow)",
    "python_paths": [
        "/opt/omd/versions/2.4.0p32.cee/bin",
        "/omd/sites/wato/local/lib/python3",
        "/omd/sites/wato/lib/python3/cloud",
        "/omd/sites/wato/lib/python312.zip",
        "/omd/sites/wato/lib/python3.12",
        "/omd/sites/wato/lib/python3.12/lib-dynload",
        "/omd/sites/wato/lib/python3.12/site-packages",
        "/omd/sites/wato/lib/python3"
    ],
    "python_version": "3.12.11 (main, Jun  6 2026, 01:53:33) [GCC 14.2.0]",
    "time": 1783320752.451597,
    "version": "2.4.0p32"
}

I’m thankfull for any help.

Thanks and best regards
Andre

we found the cause of the issue.

some genius had the terrific idea to create a “custom_host_check.mk” file in /opt/omd/sites/wato/etc/check_mk/conf.d/

After deleting that file we were able to activate changes again.

In the rare case someone has a problem like this in the future, here is what we did to debug it:

  1. copied a backup of the site to a Checkmk test server
  2. changed the file /opt/omd/versions/2.4.0p32.cee/lib/python3/cmk/utils/rulesets/ruleset_matcher.py(this is the file that reported the error when activating changes)
    And added some debug lines to return the content of the rule that produces the problem near the line that was reported in the error when we tried to activate changes (line 572 in our case)
  3. ran the command to restore the backup
  4. waited for the command to run into the same error we got when activating changes
  5. checked the added debug output for the rule contents
  6. on the live system we searched the files for the rule we found in step 2: grep -rnw '/opt/omd/sites/wato/' -e 'some content of the rule found in step 2'
  7. after checking the found file did not belong there, delete it