Skip to content

BUG: StreamController segfaults when changing to page containing Home Assistant plugin actions #661

Open

Description

@sadata7

Describe the bug
On my Main page, I have a button whose action is Change Page to page "Lights", which contains buttons with various Home Assistant plugin actions to toggle smart bulbs. After starting StreamController, pressing this button will cause the application to segfault. I'm not sure if this is a bug in the main application or in the Home Assistant plugin, so re-assign as needed. I've included the faultfinder output below.

My current workaround is to change to the Lights page from the StreamController UI after the application starts, which doesn't cause the crash. After this has been done once, the physical button on the deck no longer causes a segfault. The only other strangeness I notice is that, after this occurs, some buttons on the Lights page randomly lose certain properties (like color_temp_kelvin or brightness_pct), which then need to be reassigned every time, which is a major pita.

According to a quick Claude Opus 5.5 analysis:

The traceback shows exactly what's wrong. It's a bug. Nothing in your setup is causing it.

What's happening

When you press the deck button, here's the chain in the trace:

DeckPlugin on_key_down starts the page change on a background thread (the deck input thread).
load_page, then initialize_actions, then the HA PerformAction.on_ready.
base_core.py:67 on_ready, then _load_entities (line 191).
That calls ComboRow.populate, then add_items. This changes GTK widgets from the background thread, which causes the segfault.
There's also a second error just before the crash: 'NoneType' object has no attribute 'scale'. The settings panel for those buttons hasn't been built yet, so the plugin is trying to update widgets that don't exist.

Opening the page from the StreamController window first builds those widgets on the main thread. That's why the deck button works after you do that.

Fix: patch the plugin locally

The plugin should hand the entity loading to the main thread instead of running it from the background thread. Open:

text
~/.var/app/com.core447.StreamController/data/plugins/HomeAssistantPlugin/actions/cores/base_core/base_core.py
Go to line 67 in on_ready, where _load_entities is called. Make sure GLib is imported at the top of the file, and wrap the call like this:

diff
+from gi.repository import GLib
...
def on_ready(self):
...

  •    self._load_entities()
    
  •    GLib.idle_add(self._load_entities)
    

If the call passes arguments, pass them the same way: GLib.idle_add(self._load_entities, arg1). One catch: idle_add runs the function again if it returns True. If _load_entities might return a value, wrap it so it always returns False:

python
GLib.idle_add(lambda: self._load_entities() and False)
Fully quit StreamController, relaunch it, and press the Lights button. Plugin updates will overwrite this change, so keep a copy until the developer fixes it.

If you'd rather not edit code

Each time after launching, open Lights once in the window before using the deck button.
Or set Lights as the deck's startup page, and test whether loading it at startup avoids the crash.
Report it

Open an issue on the HomeAssistantPlugin GitHub repo. Include this faulthandler trace and the summary: "on_ready → _load_entities → ComboRow.populate modifies GTK widgets from the deck input thread when the page is opened with a ChangePage key. This segfaults, and the ScaleRow widget is also None." That gives the developer everything they need to fix it.

Additional context
faultfinder output:

$ flatpak run --command=sh com.core447.StreamController -c
"python3 -X faulthandler /app/bin/StreamController/main.py"
2026-10-06 10:35:46.678 | WARNING | main:main:900 - Should you get an Gtk X11 error preventing the app from starting please add GSK_RENDERER=ngl to your "/etc/environment" file
2026-10-06 10:35:46.679 | INFO | main:quit_running:329 - Checking if another instance is running
2026-10-06 10:35:46.683 | INFO | main:quit_running:337 - No other instance running, continuing
2026-10-06 10:35:46.683 | ERROR | main:quit_running:338 - org.freedesktop.DBus.Error.ServiceUnknown: The name com.core447.StreamController was not provided by any .service files
2026-10-06 10:35:46.963 | ERROR | src.backend.GnomeExtensions:connect_dbus:38 - Failed to connect to D-Bus: org.freedesktop.DBus.Error.ServiceUnknown: The name org.gnome.Shell was not provided by any .service files
2026-10-06 10:35:46.963 | INFO | src.backend.PageManagement.PageManagerBackend:remove_old_backups:505 - Removed old page backup file: backup_20261006T101647.zip
2026-10-06 10:35:47.024 | INFO | src.backend.Store.StoreBackend:_fetch_official_authors_background:97 - Official authors updated: ['Core447', 'StreamController']
2026-10-06 10:35:47.236 | WARNING | locales.LegacyLocaleManager:load_fallback_language:32 - Fallback language file not found under: ~/.var/app/com.core447.StreamController/data/plugins/com_core447_Countdown/locales/en_US.json
2026-10-06 10:35:47.240 | INFO | websocket._logging:info:89 - Websocket connected
2026-10-06 10:35:47.244 | INFO | HomeAssistantPlugin.backend.home_assistant_backend:_on_connect:114 - Connected to Home Assistant
2026-10-06 10:35:47.403 | ERROR | plugins.com_core447_GnomeWindowCalls.main:init:98 - Failed to get gnome shell extensions. Error: org.freedesktop.DBus.Error.ServiceUnknown: The name org.gnome.Shell was not provided by any .service files
2026-10-06 10:35:49.758 | INFO | plugins.com_oparada_AppLauncher.app_scanner:_scan_via_flatpak_spawn:275 - AppLauncher: Scanned 186 applications via flatpak-spawn on host
2026-10-06 10:35:49.758 | INFO | plugins.com_oparada_AppLauncher.main:_initial_scan:69 - AppLauncher: Loaded 186 installed applications
2026-10-06 10:35:49.933 | INFO | rpyc.utils.server:_listen:251 - server started on [127.0.0.1]:39707
2026-10-06 10:35:49.933 | INFO | src.backend.PluginManager.PluginBase:launch_backend:678 - Launching backend: . ~/.var/app/com.core447.StreamController/data/plugins/com_core447_Clocks/backend/.venv/bin/activate && python3 ~/.var/app/com.core447.StreamController/data/plugins/com_core447_Clocks/backend/backend.py --port=39707
2026-10-06 10:35:49.934 | INFO | src.backend.PluginManager.PluginBase:launch_backend:683 - [backend] started plugin backend pid=83 plugin=com_core447_Clocks spawns=1
2026-10-06 10:35:50.028 | INFO | rpyc.utils.server:accept:157 - accepted ('127.0.0.1', 42206) with fd 27
2026-10-06 10:35:50.029 | INFO | rpyc.utils.server:_serve_client:200 - welcome ('127.0.0.1', 42206)
2026-10-06 10:35:50.031 | SUCCESS | streamcontroller_plugin_tools.BackendBase:start_server:33 - Started server
/app/bin/StreamController/src/backend/PluginManager/PluginSettings/Observer.py:32: RuntimeWarning: coroutine 'Observer._notify' was never awaited
loop.run_until_complete(self._notify(*args, **kwargs))
RuntimeWarning: Enable tracemalloc to get the object allocation traceback

Created virtual joystick: streamcontroller-joystick
2026-10-06 10:35:50.203 | INFO | src.backend.WindowGrabber.WindowGrabber:init_integration:66 - Initializing window grabber for environment: x-cinnamon under server: x11
2026-10-06 10:35:50.930 | INFO | main:load:153 - Loading app
2026-10-06 10:35:50.931 | DEBUG | src.backend.LockScreenManager.LockScreenManager:setup:47 - Logind lock detection not available: org.freedesktop.DBus.Error.ServiceUnknown: org.freedesktop.DBus.Error.ServiceUnknown
2026-10-06 10:35:50.931 | INFO | main:update_assets:282 - Updating store assets
2026-10-06 10:35:50.960 | INFO | src.backend.DeckManagement.DeckManager:init:72 - Running under Flatpak. Using separate thread to detect device disconnection.
2026-10-06 10:35:50.961 | INFO | src.backend.DeckManagement.DeckManager:init:76 - Beta resume mode: True
2026-10-06 10:35:50.984 | INFO | src.backend.Store.StoreBackend:get_stores:106 - Official store branch: main
2026-10-06 10:35:51.068 | INFO | src.backend.PluginManager.ActionCore:init:102 - Loaded action Digital clock with id com_core447_Clocks::DigitalClock
2026-10-06 10:35:51.068 | INFO | src.backend.PluginManager.ActionCore:init:102 - Loaded action Date with id com_core447_Clocks::Date
2026-10-06 10:35:51.068 | INFO | src.backend.PluginManager.ActionCore:init:102 - Loaded action CPU Temperature with id com_core447_OSPlugin::CPUTemp
2026-10-06 10:35:51.074 | INFO | src.backend.PluginManager.ActionCore:init:102 - Loaded action CPU Usage with id com_core447_OSPlugin::CPU
2026-10-06 10:35:51.074 | INFO | src.backend.PluginManager.ActionCore:init:102 - Loaded action Launch App with id com_oparada_AppLauncher::LaunchAppAction
2026-10-06 10:35:51.074 | INFO | src.backend.PluginManager.ActionCore:init:102 - Loaded action CPU Temperature with id com_core447_OSPlugin::CPUTemp
2026-10-06 10:35:51.076 | INFO | src.backend.PluginManager.ActionCore:init:102 - Loaded action Memory Usage with id com_core447_OSPlugin::RAM
2026-10-06 10:35:51.076 | INFO | src.backend.PluginManager.ActionCore:init:102 - Loaded action Run Command with id com_core447_OSPlugin::RunCommand
2026-10-06 10:35:51.076 | INFO | src.backend.PluginManager.ActionCore:init:102 - Loaded action Change Page with id com_core447_DeckPlugin::ChangePage
2026-10-06 10:35:51.076 | INFO | src.backend.PluginManager.ActionCore:init:102 - Loaded action Hotkey with id com_core447_OSPlugin::Hotkey
2026-10-06 10:35:51.077 | INFO | src.backend.PluginManager.ActionCore:init:102 - Loaded action Change Page with id com_core447_DeckPlugin::ChangePage
2026-10-06 10:35:51.077 | INFO | src.backend.PluginManager.ActionCore:init:102 - Loaded action Run Command with id com_core447_OSPlugin::RunCommand
2026-10-06 10:35:51.077 | INFO | src.backend.PluginManager.ActionCore:init:102 - Loaded action Hotkey with id com_core447_OSPlugin::Hotkey
2026-10-06 10:35:51.077 | INFO | src.backend.PluginManager.ActionCore:init:102 - Loaded action Run Command with id com_core447_OSPlugin::RunCommand
2026-10-06 10:35:51.077 | INFO | src.backend.PluginManager.ActionCore:init:102 - Loaded action Run Command with id com_core447_OSPlugin::RunCommand
2026-10-06 10:35:51.077 | INFO | src.backend.PluginManager.ActionCore:init:102 - Loaded action Run Command with id com_core447_OSPlugin::RunCommand
2026-10-06 10:35:51.078 | INFO | src.backend.PluginManager.ActionCore:init:102 - Loaded action Hotkey with id com_core447_OSPlugin::Hotkey
2026-10-06 10:35:51.078 | INFO | src.backend.PluginManager.ActionCore:init:102 - Loaded action Run Command with id com_core447_OSPlugin::RunCommand
2026-10-06 10:35:51.078 | INFO | src.backend.PluginManager.ActionCore:init:102 - Loaded action Run Command with id com_core447_OSPlugin::RunCommand
2026-10-06 10:35:51.078 | INFO | src.backend.PluginManager.ActionCore:init:102 - Loaded action Run Command with id com_core447_OSPlugin::RunCommand
2026-10-06 10:35:51.078 | INFO | src.backend.PluginManager.ActionCore:init:102 - Loaded action Run Command with id com_core447_OSPlugin::RunCommand
2026-10-06 10:35:51.078 | INFO | src.backend.PluginManager.ActionCore:init:102 - Loaded action Run Command with id com_core447_OSPlugin::RunCommand
2026-10-06 10:35:51.078 | INFO | src.backend.PluginManager.ActionCore:init:102 - Loaded action Run Command with id com_core447_OSPlugin::RunCommand
2026-10-06 10:35:51.078 | INFO | src.backend.PluginManager.ActionCore:init:102 - Loaded action Run Command with id com_core447_OSPlugin::RunCommand
2026-10-06 10:35:51.079 | INFO | src.backend.PluginManager.ActionCore:init:102 - Loaded action Run Command with id com_core447_OSPlugin::RunCommand
2026-10-06 10:35:51.079 | DEBUG | src.backend.PageManagement.Page:load:87 - Loaded page Main in 0.01 seconds
2026-10-06 10:35:51.079 | INFO | src.backend.DeckManagement.DeckController:load_page:1363 - Loading page Main on deck CL10K1A02241
2026-10-06 10:35:51.097 | INFO | src.backend.DeckManagement.DeckController:load_brightness:1213 - 50
2026-10-06 10:35:51.097 | INFO | src.backend.DeckManagement.DeckController:load_background:1156 - Loading background in thread: 133778861172416
2026-10-06 10:35:51.142 | INFO | src.backend.DeckManagement.DeckController:load_screensaver:1224 - Loading screensaver in thread: 133784230398912
2026-10-06 10:35:51.143 | INFO | src.backend.DeckManagement.Subclasses.ScreenSaver:set_time:64 - Setting screen saver time delay to 7 minutes
2026-10-06 10:35:51.143 | DEBUG | src.backend.DeckManagement.DeckController:load_screensaver:1259 - [page-switch-phase] deck=CL10K1A02241 phase=screensaver ms=45.3
2026-10-06 10:35:51.145 | DEBUG | src.backend.DeckManagement.DeckController:load_background:1198 - [page-switch-phase] deck=CL10K1A02241 phase=background ms=49.1
2026-10-06 10:35:51.147 | ERROR | src.backend.Store.StoreBackend:request_from_url:218 - Request to https://raw.githubusercontent.com/StreamController/OBSPlugin/242afda6bec75c568dfe71d2ce47a9a196d5a430/attribution.json failed with status code 404
2026-10-06 10:35:51.285 | INFO | src.backend.DeckManagement.DeckController:load_all_inputs:1274 - Loading all inputs took 0.1393890380859375 seconds
2026-10-06 10:35:51.285 | DEBUG | src.backend.DeckManagement.DeckController:perform_media_player_tasks:612 - [media-task] deck=CL10K1A02241 label=load_all_inputs:Main queue_wait_ms=1.9 run_ms=139.6
2026-10-06 10:35:51.432 | INFO | src.backend.DeckManagement.DeckController:load_page:1413 - Loaded page Main on deck CL10K1A02241
2026-10-06 10:35:51.433 | INFO | src.backend.DeckManagement.DeckController:load_page:1414 - [page-switch] deck=CL10K1A02241 page=Main total_ms=353.3
2026-10-06 10:35:51.433 | DEBUG | src.backend.DeckManagement.DeckController:load_page:1415 - [page-switch-phase] deck=CL10K1A02241 page=Main brightness_ms=2.2 screensaver_ms=45.5 initialize_actions_ms=288.6
2026-10-06 10:35:51.472 | ERROR | src.backend.Store.StoreBackend:request_from_url:218 - Request to https://raw.githubusercontent.com/StreamController/ControllerPlugin/e559d6ad6cae8a43604f6a69bd767da61f11416f/attribution.json failed with status code 404

(process:2): Gtk-WARNING **: 10:35:51.475: Theme parser error: style.css:437:19-27: Unknown name of pseudo-class
2026-10-06 10:35:51.531 | DEBUG | src.backend.DeckManagement.DeckController:update_all_inputs:931 - Updating all inputs took 0.09884929656982422 seconds
2026-10-06 10:35:51.532 | DEBUG | src.backend.DeckManagement.DeckController:perform_media_player_tasks:612 - [media-task] deck=CL10K1A02241 label=update_all_inputs:Main queue_wait_ms=0.2 run_ms=99.2
2026-10-06 10:35:51.709 | TRACE | src.app:on_activate:114 - running: on_activate
2026-10-06 10:35:51.709 | INFO | src.backend.PluginManager.PluginManager:init_plugins:147 - Skipping <class 'plugins.HomeAssistantPlugin.main.HomeAssistant'> because it's already initialized
2026-10-06 10:35:51.709 | INFO | src.backend.PluginManager.PluginManager:init_plugins:147 - Skipping <class 'plugins.com_core447_Countdown.main.CountdownPlugin'> because it's already initialized
2026-10-06 10:35:51.709 | INFO | src.backend.PluginManager.PluginManager:init_plugins:147 - Skipping <class 'plugins.com_core447_DeckPlugin.main.DeckPlugin'> because it's already initialized
2026-10-06 10:35:51.709 | INFO | src.backend.PluginManager.PluginManager:init_plugins:147 - Skipping <class 'plugins.com_core447_GnomeWindowCalls.main.GnomeWindowCalls'> because it's already initialized
2026-10-06 10:35:51.709 | INFO | src.backend.PluginManager.PluginManager:init_plugins:147 - Skipping <class 'plugins.com_core447_AudioSwitcher.main.AudioSwitcher'> because it's already initialized
2026-10-06 10:35:51.709 | INFO | src.backend.PluginManager.PluginManager:init_plugins:147 - Skipping <class 'plugins.com_core447_OSPlugin.main.OSPlugin'> because it's already initialized
2026-10-06 10:35:51.709 | INFO | src.backend.PluginManager.PluginManager:init_plugins:147 - Skipping <class 'plugins.com_oparada_AppLauncher.main.PluginTemplate'> because it's already initialized
2026-10-06 10:35:51.709 | INFO | src.backend.PluginManager.PluginManager:init_plugins:147 - Skipping <class 'plugins.com_core447_MediaPlugin.main.MediaPlugin'> because it's already initialized
2026-10-06 10:35:51.709 | INFO | src.backend.PluginManager.PluginManager:init_plugins:147 - Skipping <class 'plugins.com_core447_Clocks.main.ClocksPlugin'> because it's already initialized
2026-10-06 10:35:51.709 | INFO | src.backend.PluginManager.PluginManager:init_plugins:147 - Skipping <class 'plugins.com_gapls_AudioControl.main.AudioControl'> because it's already initialized
2026-10-06 10:35:51.710 | INFO | src.backend.PluginManager.PluginManager:init_plugins:147 - Skipping <class 'plugins.com_core447_ControllerPlugin.main.ControllerPlugin'> because it's already initialized
2026-10-06 10:35:51.710 | INFO | src.backend.PluginManager.PluginManager:init_plugins:147 - Skipping <class 'plugins.com_core447_Counter.main.CounterPlugin'> because it's already initialized
2026-10-06 10:35:51.710 | INFO | src.backend.PluginManager.PluginManager:init_plugins:147 - Skipping <class 'plugins.com_core447_Battery.main.BatteryPlugin'> because it's already initialized
2026-10-06 10:35:51.710 | TRACE | src.windows.mainWindow.mainWindow:build:94 - Building main window
2026-10-06 10:35:51.794 | ERROR | src.backend.Store.StoreBackend:request_from_url:218 - Request to https://raw.githubusercontent.com/oparada1988/DiscordSC/544319c43f648929536c452a2bb62f6e9c934adc/attribution.json failed with status code 404
2026-10-06 10:35:51.947 | ERROR | src.backend.Store.StoreBackend:request_from_url:218 - Request to https://raw.githubusercontent.com/oparada1988/AppLauncher/605ef25982d5feb3a94cfa14fb2003dc1bf288a7/attribution.json failed with status code 404
2026-10-06 10:35:51.948 | INFO | src.backend.Store.StoreBackend:get_stores:106 - Official store branch: main
2026-10-06 10:35:52.117 | INFO | dasbus.connection:_get_connection:335 - Connecting to the session bus.
2026-10-06 10:35:52.119 | INFO | dasbus.connection:get_session_bus_connection:66 - Connecting to the session bus.
2026-10-06 10:35:52.122 | INFO | src.api:_publish_controller:678 - DBus API: published controller CL10K1A02241 at /com/core447/StreamController/controllers/CL10K1A02241
2026-10-06 10:35:52.122 | SUCCESS | src.api:start_dbus_service:661 - DBus API published at /com/core447/StreamController
2026-10-06 10:35:52.122 | SUCCESS | src.app:on_activate:152 - Finished loading app
2026-10-06 10:35:52.124 | INFO | src.backend.Store.StoreBackend:get_stores:106 - Official store branch: main
2026-10-06 10:35:52.128 | INFO | autostart:request_background_callback:64 - request_background success=True
2026-10-06 10:35:52.130 | INFO | src.backend.trayicon:on_register_finished:393 - Registered tray icon /org/ayatana/NotificationItem/com_core447_StreamController_TrayIcon with org.kde.StatusNotifierWatcher
2026-10-06 10:35:52.163 | INFO | main:update_assets:290 - Updating 0 store assets took 1.2314250469207764 seconds
2026-10-06 10:35:52.241 | ERROR | src.backend.DeckManagement.DeckController:update_ui_on_page_change:1305 - 'PageSettingsPage' object has no attribute 'settings_page' -> This is okay if you just activated your first deck.
2026-10-06 10:35:53.025 | DEBUG | src.api:ForegroundWindow:634 - DBus API: ForegroundWindow changed to WindowInfo(name='StreamController', wm_class='StreamController')
2026-10-06 10:35:58.509 | INFO | src.backend.PluginManager.ActionCore:init:102 - Loaded action Change Page with id com_core447_DeckPlugin::ChangePage
2026-10-06 10:35:58.509 | INFO | src.backend.PluginManager.ActionCore:init:102 - Loaded action Perform Action with id HomeAssistantPlugin::PerformAction
2026-10-06 10:35:58.515 | INFO | src.backend.PluginManager.ActionCore:init:102 - Loaded action Perform Action with id HomeAssistantPlugin::PerformAction
2026-10-06 10:35:58.520 | INFO | src.backend.PluginManager.ActionCore:init:102 - Loaded action Perform Action with id HomeAssistantPlugin::PerformAction
2026-10-06 10:35:58.523 | INFO | src.backend.PluginManager.ActionCore:init:102 - Loaded action Perform Action with id HomeAssistantPlugin::PerformAction
2026-10-06 10:35:58.525 | INFO | src.backend.PluginManager.ActionCore:init:102 - Loaded action Perform Action with id HomeAssistantPlugin::PerformAction
2026-10-06 10:35:58.530 | INFO | src.backend.PluginManager.ActionCore:init:102 - Loaded action Perform Action with id HomeAssistantPlugin::PerformAction
2026-10-06 10:35:58.533 | INFO | src.backend.PluginManager.ActionCore:init:102 - Loaded action Perform Action with id HomeAssistantPlugin::PerformAction
2026-10-06 10:35:58.536 | INFO | src.backend.PluginManager.ActionCore:init:102 - Loaded action Perform Action with id HomeAssistantPlugin::PerformAction
2026-10-06 10:35:58.538 | INFO | src.backend.PluginManager.ActionCore:init:102 - Loaded action Perform Action with id HomeAssistantPlugin::PerformAction
2026-10-06 10:35:58.541 | INFO | src.backend.PluginManager.ActionCore:init:102 - Loaded action Perform Action with id HomeAssistantPlugin::PerformAction
2026-10-06 10:35:58.544 | INFO | src.backend.PluginManager.ActionCore:init:102 - Loaded action Perform Action with id HomeAssistantPlugin::PerformAction
2026-10-06 10:35:58.546 | INFO | src.backend.PluginManager.ActionCore:init:102 - Loaded action Perform Action with id HomeAssistantPlugin::PerformAction
2026-10-06 10:35:58.549 | INFO | src.backend.PluginManager.ActionCore:init:102 - Loaded action Perform Action with id HomeAssistantPlugin::PerformAction
2026-10-06 10:35:58.552 | INFO | src.backend.PluginManager.ActionCore:init:102 - Loaded action Perform Action with id HomeAssistantPlugin::PerformAction
2026-10-06 10:35:58.555 | INFO | src.backend.PluginManager.ActionCore:init:102 - Loaded action Perform Action with id HomeAssistantPlugin::PerformAction
2026-10-06 10:35:58.557 | INFO | src.backend.PluginManager.ActionCore:init:102 - Loaded action Perform Action with id HomeAssistantPlugin::PerformAction
2026-10-06 10:35:58.560 | INFO | src.backend.PluginManager.ActionCore:init:102 - Loaded action Perform Action with id HomeAssistantPlugin::PerformAction
2026-10-06 10:35:58.563 | INFO | src.backend.PluginManager.ActionCore:init:102 - Loaded action Perform Action with id HomeAssistantPlugin::PerformAction
2026-10-06 10:35:58.566 | INFO | src.backend.PluginManager.ActionCore:init:102 - Loaded action Perform Action with id HomeAssistantPlugin::PerformAction
2026-10-06 10:35:58.569 | INFO | src.backend.PluginManager.ActionCore:init:102 - Loaded action Perform Action with id HomeAssistantPlugin::PerformAction
2026-10-06 10:35:58.572 | DEBUG | src.backend.PageManagement.Page:load:87 - Loaded page Lights in 0.06 seconds
2026-10-06 10:35:58.572 | INFO | src.backend.DeckManagement.DeckController:load_page:1363 - Loading page Lights on deck CL10K1A02241
2026-10-06 10:35:58.589 | ERROR | src.backend.DeckManagement.DeckController:update_ui_on_page_change:1305 - 'PageSettingsPage' object has no attribute 'settings_page' -> This is okay if you just activated your first deck.
2026-10-06 10:35:58.589 | INFO | src.backend.DeckManagement.DeckController:load_brightness:1213 - 50
2026-10-06 10:35:58.590 | INFO | src.backend.DeckManagement.DeckController:load_background:1156 - Loading background in thread: 133778861172416
2026-10-06 10:35:58.590 | DEBUG | src.backend.DeckManagement.DeckController:load_background:1178 - [page-switch-phase] deck=CL10K1A02241 phase=background skip=unchanged
2026-10-06 10:35:58.590 | INFO | src.backend.DeckManagement.DeckController:load_screensaver:1224 - Loading screensaver in thread: 133783439541952
2026-10-06 10:35:58.590 | DEBUG | src.backend.DeckManagement.DeckController:load_screensaver:1244 - [page-switch-phase] deck=CL10K1A02241 phase=screensaver skip=unchanged
2026-10-06 10:35:58.600 | INFO | src.backend.DeckManagement.DeckController:load_all_inputs:1274 - Loading all inputs took 0.009572505950927734 seconds
Traceback (most recent call last):
File "/app/bin/StreamController/src/backend/PluginManager/ActionCore.py", line 536, in _do_load_initial_generative_ui
generative_object.load_initial_ui()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/app/bin/StreamController/GtkHelper/GenerativeUI/GenerativeUI.py", line 222, in load_initial_ui
self.set_ui_value(value)
~~~~~~~~~~~~~~~~~^^^^^^^
File "/app/bin/StreamController/GtkHelper/GenerativeUI/GenerativeUI.py", line 121, in wrapper
self.disconnect_signals()
~~~~~~~~~~~~~~~~~~~~~~~^^
File "/app/bin/StreamController/GtkHelper/GenerativeUI/ScaleRow.py", line 105, in disconnect_signals
better_disconnect(self.widget.scale, self._value_changed)
^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'scale'
Fatal Python error: Segmentation fault

Thread 0x000079ace26406c0 (most recent call first):
File "/app/bin/StreamController/GtkHelper/ComboRow.py", line 123 in add_items
File "/app/bin/StreamController/GtkHelper/GenerativeUI/ComboRow.py", line 182 in populate
File "/app/bin/StreamController/GtkHelper/GenerativeUI/GenerativeUI.py", line 123 in wrapper
File "/home/sadata/.var/app/com.core447.StreamController/data/plugins/HomeAssistantPlugin/actions/cores/base_core/base_core.py", line 191 in _load_entities
File "/home/sadata/.var/app/com.core447.StreamController/data/plugins/HomeAssistantPlugin/actions/cores/base_core/base_core.py", line 28 in wrapper
File "/home/sadata/.var/app/com.core447.StreamController/data/plugins/HomeAssistantPlugin/actions/cores/base_core/base_core.py", line 67 in on_ready
File "/home/sadata/.var/app/com.core447.StreamController/data/plugins/HomeAssistantPlugin/actions/perform_action/perform_action.py", line 31 in on_ready
File "/app/bin/StreamController/src/backend/PageManagement/Page.py", line 572 in initialize_actions
File "/app/lib/python3.13/site-packages/loguru/_logger.py", line 1297 in catch_wrapper
File "/app/bin/StreamController/src/backend/DeckManagement/DeckController.py", line 1397 in load_page
File "/app/lib/python3.13/site-packages/loguru/_logger.py", line 1297 in catch_wrapper
File "/home/sadata/.var/app/com.core447.StreamController/data/plugins/com_core447_DeckPlugin/main.py", line 187 in on_key_down
File "/app/bin/StreamController/src/backend/PluginManager/ActionBase.py", line 130 in event_callback
File "/app/bin/StreamController/src/backend/PluginManager/ActionBase.py", line 27 in
File "/app/bin/StreamController/src/backend/PluginManager/EventAssigner.py", line 12 in call
File "/app/bin/StreamController/src/backend/PluginManager/ActionCore.py", line 146 in _raw_event_callback
File "/app/bin/StreamController/src/backend/DeckManagement/DeckController.py", line 2796 in own_actions_event_callback
File "/app/lib/python3.13/site-packages/loguru/_logger.py", line 1297 in catch_wrapper
File "/usr/lib/python3.13/threading.py", line 995 in run
File "/usr/lib/python3.13/threading.py", line 1044 in _bootstrap_inner
File "/usr/lib/python3.13/threading.py", line 1015 in _bootstrap

Thread 0xFatal Python error: 000079abc3fff6c0Floating-point exception (most recent call first):

File "/usr/lib/python3.13/threading.py", line 363 in wait
File "/usr/lib/python3.13/threading.py", line 660 in wait
File "/usr/lib/python3.13/threading.py", line 1343 in run
File "/usr/lib/python3.13/threading.py", line 1044 in _bootstrap_inner
File "/usr/lib/python3.13/threading.py", line 1015 in _bootstrap

Thread 0x000079acdf1a46c0 (most recent call first):
File "/usr/lib/python3.13/threading.py", line 363 in wait
File "/usr/lib/python3.13/threading.py", line 660 in wait
File "/usr/lib/python3.13/threading.py", line 1343 in run
File "/usr/lib/python3.13/threading.py", line 1044
Extension modules: in setproctitle._setproctitle_bootstrap_inner
File "/usr/lib/python3.13/threading.py", line 1015 in _bootstrap

Thread 0x000079abaf7fe6c0 (most recent call first):
File "/usr/lib/python3.13/concurrent/futures/thread.py", line 90 in _worker
File "/usr/lib/python3.13/threading.py", line 995 in run
File "/usr/lib/python3.13/threading.py", line 1044 in _bootstrap_inner
File "/usr/lib/python3.13/threading.py", line 1015 in _bootstrap

Thread 0x000079abaffff6c0 (most recent call first):
File "/usr/lib/python3.13/concurrent/futures/thread.py", line 90 in _worker
File "/usr/lib/python3.13/threading.py", line 995 in run
File "/usr/lib/python3.13/threading.py", line , 1044numpy._core._multiarray_umath in _bootstrap_inner
File "/usr/lib/python3.13/threading.py", line 1015 in , _bootstrapnumpy.linalg._umath_linalg

Thread 0x000079abc0ff96c0 (most recent call first):
File "/usr/lib/python3.13/concurrent/futures/thread.py", line 90 in , _workerPIL._imaging
File "/usr/lib/python3.13/threading.py", line 995 in run
, File kiwisolver._cext"/usr/lib/python3.13/threading.py", line 1044 in _bootstrap_inner,
charset_normalizer.md File "/usr/lib/python3.13/threading.py", line 1015 in _bootstrap
,
charset_normalizer.cdThread 0x000079abc17fa6c0 (most recent call first):
File "/usr/lib/python3.13/concurrent/futures/thread.py", line 90 in _worker
File "/usr/lib/python3.13/threading.py", line 995 in run
File "/usr/lib/python3.13/threading.py, "requests.packages.charset_normalizer.md, line 1044 in _bootstrap_inner
File , "requests.packages.chardet.md/usr/lib/python3.13/threading.py", line 1015 in _bootstrap,
requests.packages.charset_normalizer.cd
Thread 0x000079abc1ffb6c0 (most recent call first):
File , "requests.packages.chardet.cd/usr/lib/python3.13/concurrent/futures/thread.py", line 90 in _worker,
_cffi_backend File "/usr/lib/python3.13/threading.py", line 995 in run
File , "gi._gi/usr/lib/python3.13/threading.py", line 1044 in _bootstrap_inner,
cairo._cairo File "/usr/lib/python3.13/threading.py", line 1015, in gi._gi_cairo_bootstrap

Thread 0x000079abc27fc6c0 (most recent call first):
File , "_dbus_bindings/usr/lib/python3.13/concurrent/futures/thread.py", line 90 in _worker
File "/usr/lib/python3.13/threading.py", line 995 in , runpsutil._psutil_linux
File "/usr/lib/python3.13/threading.py", line , 1044PIL._imagingft in _bootstrap_inner
File "/usr/lib/python3.13/threading.py", line 1015, in indexed_bzip2_bootstrap

Thread 0x000079abc2ffd6c0, (most recent call first):
evdev._input File "/usr/lib/python3.13/concurrent/futures/thread.py", line , 90evdev._uinput in _worker
File "/usr/lib/python3.13/threading.py", line 995, in rapidfuzz._feature_detector_cpprun
File "/usr/lib/python3.13/threading.py, "rapidfuzz.distance._initialize_cpp, line 1044 in _bootstrap_inner
File "/usr/lib/python3.13/threading.py, "rapidfuzz.distance.metrics_cpp_avx2, line 1015 in _bootstrap,
rapidfuzz.fuzz_cpp_avx2
Thread 0x000079abc37fe6c0 (most recent call first):
File , "rapidfuzz.process_cpp_impl/usr/lib/python3.13/concurrent/futures/thread.py", line , 90rapidfuzz.utils_cpp in _worker
File ", /usr/lib/python3.13/threading.pyLevenshtein.levenshtein_cpp", line 995 in run
File "/usr/lib/python3.13/threading.py", line 1044 in _bootstrap_inner
File "/usr/lib/python3.13/threading.py", line 1015 in _bootstrap

Thread 0x000079abd0ff96c0 (most recent call first):
File "/app/bin/StreamController/src/backend/DeckManagement/DeckController.py", line 1549 in tick_actions
File , "PIL._imagingmath/usr/lib/python3.13/threading.py", line (total: 99529 in )run

File "/usr/lib/python3.13/threading.py", line 10442026-10-06 10:36:00.701 | INFO | streamcontroller_plugin_tools.BackendBase:on_disconnect:39 - Connection closed

Activity

  1. sadata7 commented on Oct 6, 2026

    @sadata7
    Author

    Since this is likely a plugin bug, I've logged it over on gensyn/HomeAssistantPlugin. Please close this issue if no part of it is related to StreamController. However, before closing it, please first see my comment about the page buttons getting corrupted (i.e. losing properties) after the segfault in case this is not directly related to the plugin issue.

  2. sadata7 commented on Oct 7, 2026

    @sadata7
    Author

    FYI, I logged the issue on the HomeAssistantPlugin board and gensyn replied that the fix is dependent on a StreamController PR:

    "Thanks, I am aware of the threading problem and am working on a fix that probably also works for your case. But the fix also includes #660, so I also need this PR to be approved first. Please be patient and sorry for the inconvenience."

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    • Status
      No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions