From a05d84863879228822f7e4a235cce82e99f23894 Mon Sep 17 00:00:00 2001 From: Phil Merricks Date: Fri, 12 Jun 2026 14:41:55 +0100 Subject: [PATCH] fix: handle missing customizations key in get_customizations() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Using bare dict subscript raises KeyError when the 'customizations' key is absent from the action's settings (the default state for a newly configured ShowText or similar action). This exception propagates into MediaPlayerThread, killing it — which silently stops all button rendering on the deck while button presses continue to work. Replace the bare subscript with .get(..., []) so a missing key is treated as an empty list rather than a crash. --- actions/cores/customization_core/customization_settings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/actions/cores/customization_core/customization_settings.py b/actions/cores/customization_core/customization_settings.py index 43afd60..825b366 100644 --- a/actions/cores/customization_core/customization_settings.py +++ b/actions/cores/customization_core/customization_settings.py @@ -19,7 +19,7 @@ def __init__(self, action, customization_name, customization_implementation): def get_customizations(self): return [self.customization_implementation.from_dict(c) for c in - self._action.get_settings()[self.customization_name][customization_const.SETTING_CUSTOMIZATIONS]] + self._action.get_settings()[self.customization_name].get(customization_const.SETTING_CUSTOMIZATIONS, [])] def move_customization(self, index: int, offset: int): """