toml app configs are ignored
What happened?
toml files in the apps directory seem to just be ignored completely. the same config worked with 4.4.2. the modules work if a yaml config is created.
appdaemon.toml is still loaded
version 4.4.2 had a warning if there were python modules with no config, now it just fails silently with no indication of how it interpreted the config directory.
Version
4.5.12
Installation type
Python virtual environment
Relevant log output
2025-11-18 20:52:14.564424 INFO AppDaemon: ------------------------------------------------------------
2025-11-18 20:52:14.565008 INFO AppDaemon: AppDaemon Version 4.5.12 starting
2025-11-18 20:52:14.565115 INFO AppDaemon: ------------------------------------------------------------
2025-11-18 20:52:14.565208 INFO AppDaemon: Python version is 3.11.11
2025-11-18 20:52:14.567016 INFO AppDaemon: Configuration read from: /home/ryan/hass/appdaemon/appdaemon.toml
2025-11-18 20:52:14.567661 INFO AppDaemon: Using /home/ryan/hass/appdaemon/apps as app_dir
2025-11-18 20:52:14.568603 INFO AppDaemon: Loading built-in plugin 'HASS' using 'HassPlugin' from 'appdaemon.plugins.hass.hassplugin'
2025-11-18 20:52:14.568873 INFO HASS: HASS Plugin initialization complete
2025-11-18 20:52:14.569103 INFO AppDaemon: HTTP is disabled
2025-11-18 20:52:14.569297 DEBUG AppDaemon: Starting the app management subsystem
2025-11-18 20:52:14.570389 INFO AppDaemon: Scheduler running in realtime
2025-11-18 20:52:14.571472 INFO AppDaemon: Starting apps with 1 worker threads. Apps will all be assigned threads and pinned to them.
2025-11-18 20:52:14.572110 INFO AppDaemon: Waiting for plugins to be ready
2025-11-18 20:52:14.573661 DEBUG AppDaemon: Adding directory to import path: /home/ryan/hass/appdaemon/apps
2025-11-18 20:52:14.576004 INFO HASS: Connected to Home Assistant 2025.11.2 with aiohttp websocket
2025-11-18 20:52:14.576846 INFO HASS: Authenticated to Home Assistant 2025.11.2
2025-11-18 20:52:14.577707 INFO HASS: Waiting for Home Assistant to start
2025-11-18 20:52:14.585712 INFO AppDaemon: All plugins ready
2025-11-18 20:52:14.592077 INFO HASS: Completed initialization in 22.436ms
2025-11-18 20:52:14.607618 DEBUG AppDaemon: =========================== Python file changes ===========================
Relevant code in the app or config file that caused the issue
[test]
module = "kitchen"
class = "Motion"
Anything else?
No response
Are you using production_mode: true in your appdaemon config? Could be a duplicate of recently closed issues if so. See: https://github.com/AppDaemon/appdaemon/issues/2467
no, i'm not using production mode. live reload works so i'm fairly sure it's not getting turned on by accident somewhere
no, i'm not using production mode. live reload works so i'm fairly sure it's not getting turned on by accident somewhere
Okay, maybe unrelated then but FWIW the fix says that app loading is non-deterministic even in debug mode. https://github.com/AppDaemon/appdaemon/pull/2477
That doesn't look related to me. I don't see how that would cause toml and yaml files to behave differently.
Looking into it I honestly don't know what's happening.
Relevant code seems to probably be here https://github.com/AppDaemon/appdaemon/blob/78dd615533b6ea7416d756b4a06d8a55467fbee0/appdaemon/app_management.py#L1048
recursive_get_files doesn't seem to support multiple suffixes so I'm not really sure how this is supposed to work https://github.com/AppDaemon/appdaemon/blob/78dd615533b6ea7416d756b4a06d8a55467fbee0/appdaemon/utils.py#L1239
~~ext gets set to a list here~~ i was distracted when looking at this before, that's the type annotation https://github.com/AppDaemon/appdaemon/blob/78dd615533b6ea7416d756b4a06d8a55467fbee0/appdaemon/app_management.py#L50
but gets set ~~again~~ in __init__, i assume to a str since I'm not sure how item.suffix == suffix would ever be true otherwise
https://github.com/AppDaemon/appdaemon/blob/78dd615533b6ea7416d756b4a06d8a55467fbee0/appdaemon/app_management.py#L90
i encountered the same issue. if i write yaml config file, the app is normal. if i write toml conjfig file, the appdaemon dont load it.