HA not saving config entries every time I reboot

I’ve been using HA for a year or two and just recently I’ve started to see errors where it appears some of my entities are not saving correctly and when I reboot/restart HA, I have to go into Devices & services and re-add/reconfigure a number of integrations. I’m able to go through that setup/configuration option without any issue, but when I reboot/restart HA, I have to go through the whole process again.

I notice the following error in the logs every time I try and save/edit/delete any settings but am not sure what this means or where to start to troubleshoot:

2024-12-26 12:17:15.059 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved (None)
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/storage.py", line 516, in _async_callback_delayed_write
    await self._async_handle_write_data()
  File "/usr/src/homeassistant/homeassistant/helpers/storage.py", line 541, in _async_handle_write_data
    await self._async_write_data(self.path, data)
  File "/usr/src/homeassistant/homeassistant/helpers/storage.py", line 546, in _async_write_data
    await self.hass.async_add_executor_job(self._write_data, self.path, data)
  File "/usr/local/lib/python3.13/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/src/homeassistant/homeassistant/helpers/storage.py", line 553, in _write_data
    data["data"] = data.pop("data_func")()
                   ~~~~~~~~~~~~~~~~~~~~~^^
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 2432, in _data_to_save
    "entries": [entry.as_storage_fragment for entry in self._entries.values()]  # type: ignore[misc]
                ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "src/propcache/_helpers_c.pyx", line 80, in propcache._helpers_c.cached_property.__get__
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 537, in as_storage_fragment
    return json_fragment(json_bytes_sorted(self.as_dict()))
                         ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^
TypeError: Recursion limit reached

My OS version is 14.1
Core version is 2024.12.5

It’s almost as though the changes I make are saved in some sort of cache but aren’t able to be correctly written to the database.

When I check the configuration under Development Tools, I get no errors.

I’m happy to provide additional details - just not sure where to start. Appreciate any advice anyone may have on where to go from here

I have the exact same issue, I can’t add devices anymore, it’s temporary, every reboot resets and I have to re-add them. Settings (like the refresh token for the Tesla Custom integration) are also lost. Error in the logs is the same, Recursion limit reached related to storage.py and config_entries.py. Running 2024.12.5, no errors under Developer Tools.

I’ve been having the same issue also, it’s been happening to me since at least 2024.11

@mkeppler @fingmongoose so now it’s the three of us. Have you folks had any success troubleshooting this? This issue persists for me. I’ve resorted to editing homeassistant/.storage/core.config_entries manually once. But adding new devices is impossible, they don’t survive a restart or a reboot.

This is what the entry in the logs look like.

Logger: homeassistant
Source: config_entries.py:537
First occurred: December 28, 2024 at 05:03:20 (129 occurrences)
Last logged: 22:00:01

Error doing job: Task exception was never retrieved (None)
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/storage.py", line 516, in _async_callback_delayed_write
    await self._async_handle_write_data()
  File "/usr/src/homeassistant/homeassistant/helpers/storage.py", line 541, in _async_handle_write_data
    await self._async_write_data(self.path, data)
  File "/usr/src/homeassistant/homeassistant/helpers/storage.py", line 546, in _async_write_data
    await self.hass.async_add_executor_job(self._write_data, self.path, data)
  File "/usr/local/lib/python3.13/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/src/homeassistant/homeassistant/helpers/storage.py", line 553, in _write_data
    data["data"] = data.pop("data_func")()
                   ~~~~~~~~~~~~~~~~~~~~~^^
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 2432, in _data_to_save
    "entries": [entry.as_storage_fragment for entry in self._entries.values()]  # type: ignore[misc]
                ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "src/propcache/_helpers_c.pyx", line 80, in propcache._helpers_c.cached_property.__get__
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 537, in as_storage_fragment
    return json_fragment(json_bytes_sorted(self.as_dict()))
                         ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^
TypeError: Recursion limit reached

The problem srtarted around 2024.11 for me as well.
I don’t know where to go from here further honestly.

Same problem for me.
Also helpers are not saved, which is quite annoying.

I tried to set up a new system and restored my backup: problem still there. So it seems that some kind of config is the cause of the problem, but I changed nothing…

Did some research just now…

In my case it was the Meross Integration, which F%$§ed up everything.
Deleted it an did a restart. Now everything is fine again!

1 Like

That worked for me. I deleted the Meross Cloud Integration and setup the Meross LAN integration and that seems to be working.

1 Like

I will try that as well. I have the Meross integration, too. May be we found the culprit.

I had the same problem. it didn’t occur to me that Meross Cloud integration was the culprit. Uninstalling Meross Cloud integration and rebooting fixed the problem.