From c1eb8cb24ea96449cde06b29fdfc1d2e165b4853 Mon Sep 17 00:00:00 2001 From: Anil Sahoo Date: Tue, 19 Aug 2025 22:45:55 +0530 Subject: [PATCH] Fixed an issue on Linux systems where the /upgrade_check API in server mode raised a KeyError. --- web/pgadmin/misc/__init__.py | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/web/pgadmin/misc/__init__.py b/web/pgadmin/misc/__init__.py index 5b619e040..d02124e46 100644 --- a/web/pgadmin/misc/__init__.py +++ b/web/pgadmin/misc/__init__.py @@ -394,22 +394,28 @@ def upgrade_check(): 'Exception when checking for update') return internal_server_error('Failed to check for update') - if data: + if data and config.UPGRADE_CHECK_KEY and \ + config.UPGRADE_CHECK_KEY in data: # Determine platform - if sys.platform == 'darwin': + if sys.platform.startswith("darwin"): platform = 'macos' - elif sys.platform == 'win32': + elif sys.platform.startswith("win"): platform = 'windows' + elif sys.platform.startswith("linux"): + platform = 'linux' upgrade_version_int = data[config.UPGRADE_CHECK_KEY]['version_int'] - auto_update_url_exists = data[config.UPGRADE_CHECK_KEY][ - 'auto_update_url'][platform] != '' + auto_update_url_dict = (data[config.UPGRADE_CHECK_KEY] + .get('auto_update_url', {})) + auto_update_url_exists = ( + platform in auto_update_url_dict and + auto_update_url_dict[platform] != '' + ) # Construct common response dicts for auto-update support auto_update_common_res = { "check_for_auto_updates": True, - "auto_update_url": data[config.UPGRADE_CHECK_KEY][ - 'auto_update_url'][platform], + "auto_update_url": auto_update_url_dict.get(platform, ''), "platform": platform, "installer_type": config.UPGRADE_CHECK_KEY, "current_version": config.APP_VERSION,