From a0567a66cc9b29f66d9b96f8ca8388d3658411e2 Mon Sep 17 00:00:00 2001 From: Chuck Date: Fri, 20 Mar 2026 15:01:45 -0400 Subject: [PATCH] fix: catch ConfigError in display preview generator PR #282 narrowed bare except blocks but missed ConfigError from config_manager.load_config(), which wraps FileNotFoundError, JSONDecodeError, and OSError. Without this, a corrupt or missing config crashes the display preview SSE endpoint instead of falling back to 128x64 defaults. Co-Authored-By: Claude Opus 4.6 --- web_interface/app.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/web_interface/app.py b/web_interface/app.py index 6e49ab17..7b186833 100644 --- a/web_interface/app.py +++ b/web_interface/app.py @@ -11,6 +11,7 @@ from datetime import datetime, timedelta sys.path.insert(0, str(Path(__file__).parent.parent)) from src.config_manager import ConfigManager +from src.exceptions import ConfigError from src.plugin_system.plugin_manager import PluginManager from src.plugin_system.store_manager import PluginStoreManager from src.plugin_system.saved_repositories import SavedRepositoriesManager @@ -492,7 +493,7 @@ def display_preview_generator(): parallel = main_config.get('display', {}).get('hardware', {}).get('parallel', 1) width = cols * chain_length height = rows * parallel - except (KeyError, TypeError, ValueError): + except (KeyError, TypeError, ValueError, ConfigError): width = 128 height = 64