HA Core 2024.1.4 update failure

Just updated a couple of HA systems to 2024.1.4 and it worked fine.

All other updates went just fine. No issues. Except for this one. And it seems I am not the only one.

Don’t see any errors either. It looks like it updates, but when it’s back online, it’s not. Really strange.

Yes, I had the same problem last night. I tried again a few minutes ago and it is still happening.

I’m not sure if this is related, but I found it in home-assistant.log.1:

2024-01-20 07:36:53.905 ERROR (MainThread) [root] Uncaught exception
Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "/usr/src/homeassistant/homeassistant/__main__.py", line 221, in <module>
    sys.exit(main())
             ^^^^^^
  File "/usr/src/homeassistant/homeassistant/__main__.py", line 209, in main
    exit_code = runner.run(runtime_conf)
                ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/runner.py", line 188, in run
    return loop.run_until_complete(setup_and_run_hass(runtime_config))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/asyncio/base_events.py", line 653, in run_until_complete
    return future.result()
           ^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/runner.py", line 154, in setup_and_run_hass
    hass = await bootstrap.async_setup_hass(runtime_config)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/bootstrap.py", line 147, in async_setup_hass
    config_dict = await conf_util.async_hass_config_yaml(hass)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/config.py", line 501, in async_hass_config_yaml
    await merge_packages_config(hass, config, core_config.get(CONF_PACKAGES, {}))
  File "/usr/src/homeassistant/homeassistant/config.py", line 1029, in merge_packages_config
    PACKAGES_CONFIG_SCHEMA(packages)
  File "/usr/src/homeassistant/homeassistant/helpers/config_validation.py", line 588, in verify
    return cast(dict, schema(value))
                      ^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/voluptuous/schema_builder.py", line 272, in __call__
    return self._compiled([], data)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/voluptuous/schema_builder.py", line 595, in validate_dict
    return base_validate(path, iteritems(data), out)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/voluptuous/schema_builder.py", line 433, in validate_mapping
    raise er.MultipleInvalid(errors)
voluptuous.error.MultipleInvalid: expected a dictionary for dictionary value @ data['alert']

Ah yes. I see I have a rollback log.

2024-01-20 10:50:03.592 ERROR (MainThread) [root] Uncaught exception
Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "/usr/src/homeassistant/homeassistant/__main__.py", line 221, in <module>
    sys.exit(main())
             ^^^^^^
  File "/usr/src/homeassistant/homeassistant/__main__.py", line 209, in main
    exit_code = runner.run(runtime_conf)
                ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/runner.py", line 188, in run
    return loop.run_until_complete(setup_and_run_hass(runtime_config))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/asyncio/base_events.py", line 653, in run_until_complete
    return future.result()
           ^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/runner.py", line 154, in setup_and_run_hass
    hass = await bootstrap.async_setup_hass(runtime_config)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/bootstrap.py", line 147, in async_setup_hass
    config_dict = await conf_util.async_hass_config_yaml(hass)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/config.py", line 501, in async_hass_config_yaml
    await merge_packages_config(hass, config, core_config.get(CONF_PACKAGES, {}))
  File "/usr/src/homeassistant/homeassistant/config.py", line 1029, in merge_packages_config
    PACKAGES_CONFIG_SCHEMA(packages)
  File "/usr/src/homeassistant/homeassistant/helpers/config_validation.py", line 588, in verify
    return cast(dict, schema(value))
                      ^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/voluptuous/schema_builder.py", line 272, in __call__
    return self._compiled([], data)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/voluptuous/schema_builder.py", line 595, in validate_dict
    return base_validate(path, iteritems(data), out)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/voluptuous/schema_builder.py", line 433, in validate_mapping
    raise er.MultipleInvalid(errors)
voluptuous.error.MultipleInvalid: expected a dictionary for dictionary value @ data['conversation']

Same here. [CAUSE : An empty homeassistant.yaml file…]

2024-01-20 14:48:44.307 ERROR (MainThread) [root] Uncaught exception
Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "/usr/src/homeassistant/homeassistant/__main__.py", line 221, in <module>
    sys.exit(main())
             ^^^^^^
  File "/usr/src/homeassistant/homeassistant/__main__.py", line 209, in main
    exit_code = runner.run(runtime_conf)
                ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/runner.py", line 188, in run
    return loop.run_until_complete(setup_and_run_hass(runtime_config))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/asyncio/base_events.py", line 653, in run_until_complete
    return future.result()
           ^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/runner.py", line 154, in setup_and_run_hass
    hass = await bootstrap.async_setup_hass(runtime_config)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/bootstrap.py", line 147, in async_setup_hass
    config_dict = await conf_util.async_hass_config_yaml(hass)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/config.py", line 501, in async_hass_config_yaml
    await merge_packages_config(hass, config, core_config.get(CONF_PACKAGES, {}))
  File "/usr/src/homeassistant/homeassistant/config.py", line 1029, in merge_packages_config
    PACKAGES_CONFIG_SCHEMA(packages)
  File "/usr/src/homeassistant/homeassistant/helpers/config_validation.py", line 588, in verify
    return cast(dict, schema(value))
                      ^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/voluptuous/schema_builder.py", line 272, in __call__
    return self._compiled([], data)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/voluptuous/schema_builder.py", line 595, in validate_dict
    return base_validate(path, iteritems(data), out)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/voluptuous/schema_builder.py", line 433, in validate_mapping
    raise er.MultipleInvalid(errors)
voluptuous.error.MultipleInvalid: expected a dictionary for dictionary value @ data['homeassistant']
3 Likes

Getting rid of a couple of empty yaml files fixed it for me. Thank you!

Where did you remove the empty yaml files from? I don’t see any obvious ones at first glance.

Check configuration.yaml for lines containing the !include directive. They point to other files. Check those other files if they’re empty.

If you use packages, there may be a package containing empty files.

4 Likes

Cleaned my files and dirs. Dit indeed fix the problem.

Thank you. I had an alarm.yaml file in my packages directory that had all of the lines commented out because they weren’t being used since moving to Alarmo. I renamed the file to alarm.yaml.unused and all is good again.

It took me longer than I care to admit to find the offending empty file. But I was finally able to get the update to complete successfully. Thanks.

1 Like

same issue for me

edit: removed (empty) scenes.yaml and scripts.yaml, which resulted in reboot in recovery mode. Recreated the files and now after reboot everything was ok (2024.1.3 → 2024.1.5)

It was fixed in 2024.1.5 anyway…

was struggling updating from 2024.1.3 to 2024.1.5 till found this thread. Renaming unused files helped

Installed version 2024.1.5
Latest version 2024.1.6

I have the same issue again, annoying recurring problem :frowning:

I am also unable to update past 2024.1.5 but errors look different.

2024-02-02 12:52:19.747 ERROR (MainThread) [root] Uncaught exception
Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "/usr/src/homeassistant/homeassistant/__main__.py", line 221, in <module>
    sys.exit(main())
             ^^^^^^
  File "/usr/src/homeassistant/homeassistant/__main__.py", line 209, in main
    exit_code = runner.run(runtime_conf)
                ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/runner.py", line 188, in run
    return loop.run_until_complete(setup_and_run_hass(runtime_config))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/asyncio/base_events.py", line 684, in run_until_complete
    return future.result()
           ^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/runner.py", line 154, in setup_and_run_hass
    hass = await bootstrap.async_setup_hass(runtime_config)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/bootstrap.py", line 203, in async_setup_hass
    await async_from_config_dict(config_dict, hass) is not None
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/bootstrap.py", line 319, in async_from_config_dict
    await async_load_base_functionality(hass)
  File "/usr/src/homeassistant/homeassistant/bootstrap.py", line 296, in async_load_base_functionality
    await asyncio.gather(
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 1354, in async_initialize
    entries[entry_id] = config_entry
    ~~~~~~~^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 1148, in __setitem__
    self._domain_unique_id_index.setdefault(entry.domain, {})[
TypeError: unhashable type: 'list'

There are no blank yaml files, I can’t seem to find this list that’s creating an error.

@tybo611 Did you get this fixed as I am having the same issue?
my rollback log looks like this

2024-02-07 16:28:36.019 ERROR (MainThread) [root] Uncaught exception
Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "/usr/src/homeassistant/homeassistant/__main__.py", line 221, in <module>
    sys.exit(main())
             ^^^^^^
  File "/usr/src/homeassistant/homeassistant/__main__.py", line 209, in main
    exit_code = runner.run(runtime_conf)
                ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/runner.py", line 188, in run
    return loop.run_until_complete(setup_and_run_hass(runtime_config))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/asyncio/base_events.py", line 684, in run_until_complete
    return future.result()
           ^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/runner.py", line 154, in setup_and_run_hass
    hass = await bootstrap.async_setup_hass(runtime_config)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/bootstrap.py", line 203, in async_setup_hass
    await async_from_config_dict(config_dict, hass) is not None
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/bootstrap.py", line 319, in async_from_config_dict
    await async_load_base_functionality(hass)
  File "/usr/src/homeassistant/homeassistant/bootstrap.py", line 296, in async_load_base_functionality
    await asyncio.gather(
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 1354, in async_initialize
    entries[entry_id] = config_entry
    ~~~~~~~^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 1148, in __setitem__
    self._domain_unique_id_index.setdefault(entry.domain, {})[
TypeError: unhashable type: 'list'

Yes. My error ended up being a custom component that wasn’t maintained anymore since core had picked up the integration. In my case it was schlage encode wifi. Took a little to figure it out but once removed upgrade went fine.

I found it by taking a full backup then systematically deleting integrations and trying the update. Just kept going until it worked, rolled back to the backup, deleted the problem and upgraded.

and yet again with 2024.2.0 → 2024.2.1 :frowning:

edit: a force reload YAML + full reboot and another update attempt did the trick. Guess some kind of pre-upgrade validation needs some TLC :slight_smile:

don’t think there is a 2024.2.2 as yet

what are you actually upgrading to/from…
and always a good idea to post your logs if you want real help as it’s difficult to assist with an “again” type post…

1 Like