Describe the problem
After updating to Core 2026.10.1 (frontend 20260930.3, Home Assistant OS), my Home dashboard lost its favourites and shortcuts. I had dismissed the welcome banner long ago (welcome_banner_dismissed: true) and had 7 favourites plus 7 summary shortcuts. Right after the update restart the banner appeared again; I clicked it and used the dismiss action in the dialog. Afterwards the Home dashboard had no favourites and no custom shortcuts.
/config/.storage/frontend.system_data, key home:
- Backup taken a few minutes before the update:
welcome_banner_dismissed: true, favorite_entities (7 entries), shortcuts (7 entries).
- After the dismiss click: only
welcome_banner_dismissed: true.
I restored the key from the backup with frontend/set_system_data.
What I think happens
src/panels/home/ha-panel-home.ts:
_showBanner only returns true when this._config.welcome_banner_dismissed is falsy. Since the stored value was true, the banner showing at all means the panel's _config was empty at that moment.
_config is empty either before the initial frontend/get_system_data load finishes, or when that load is rejected: homeResult.status === "rejected" sets this._config = {} (only a console.error).
_learnMore() then calls saveFrontendSystemData(connection, "home", { ...this._config, welcome_banner_dismissed: true }). With an empty _config this replaces the whole stored object, so favorite_entities, shortcuts, hide_welcome_message and hide_suggested_entities are deleted server side.
Suggested fix
Do not write the whole object from a possibly empty local copy. Options: do not show or act on the banner until the home config has loaded successfully, or re-read the stored value before merging in the dismiss flag, or have set_system_data for this key merge instead of replace.
Environment
- Core 2026.10.1, frontend 20260930.3, updated from 2026.9.4, restart right after the update
- Chrome on a Windows PC
What I could not determine
Whether the first home read failed or had just not finished when I clicked. I did not see an error message, and I do not have the browser console output from that moment, so the analysis above comes from reading the code.
Describe the problem
After updating to Core 2026.10.1 (frontend 20260930.3, Home Assistant OS), my Home dashboard lost its favourites and shortcuts. I had dismissed the welcome banner long ago (
welcome_banner_dismissed: true) and had 7 favourites plus 7 summary shortcuts. Right after the update restart the banner appeared again; I clicked it and used the dismiss action in the dialog. Afterwards the Home dashboard had no favourites and no custom shortcuts./config/.storage/frontend.system_data, keyhome:welcome_banner_dismissed: true,favorite_entities(7 entries),shortcuts(7 entries).welcome_banner_dismissed: true.I restored the key from the backup with
frontend/set_system_data.What I think happens
src/panels/home/ha-panel-home.ts:_showBanneronly returns true whenthis._config.welcome_banner_dismissedis falsy. Since the stored value wastrue, the banner showing at all means the panel's_configwas empty at that moment._configis empty either before the initialfrontend/get_system_dataload finishes, or when that load is rejected:homeResult.status === "rejected"setsthis._config = {}(only aconsole.error)._learnMore()then callssaveFrontendSystemData(connection, "home", { ...this._config, welcome_banner_dismissed: true }). With an empty_configthis replaces the whole stored object, sofavorite_entities,shortcuts,hide_welcome_messageandhide_suggested_entitiesare deleted server side.Suggested fix
Do not write the whole object from a possibly empty local copy. Options: do not show or act on the banner until the home config has loaded successfully, or re-read the stored value before merging in the dismiss flag, or have
set_system_datafor this key merge instead of replace.Environment
What I could not determine
Whether the first
homeread failed or had just not finished when I clicked. I did not see an error message, and I do not have the browser console output from that moment, so the analysis above comes from reading the code.