diff --git a/flutter/lib/desktop/pages/desktop_home_page.dart b/flutter/lib/desktop/pages/desktop_home_page.dart
index 0f190b181..fa065e049 100644
--- a/flutter/lib/desktop/pages/desktop_home_page.dart
+++ b/flutter/lib/desktop/pages/desktop_home_page.dart
@@ -658,10 +658,12 @@ class _DesktopHomePageState extends State<DesktopHomePage>
   @override
   void initState() {
     super.initState();
-    Timer(const Duration(seconds: 1), () async {
-      updateUrl = await bind.mainGetSoftwareUpdateUrl();
-      if (updateUrl.isNotEmpty) setState(() {});
-    });
+    if (!bind.isCustomClient()) {
+      Timer(const Duration(seconds: 1), () async {
+        updateUrl = await bind.mainGetSoftwareUpdateUrl();
+        if (updateUrl.isNotEmpty) setState(() {});
+      });
+    }
     _updateTimer = periodic_immediate(const Duration(seconds: 1), () async {
       await gFFI.serverModel.fetchID();
       final error = await bind.mainGetError();
diff --git a/flutter/lib/desktop/pages/desktop_setting_page.dart b/flutter/lib/desktop/pages/desktop_setting_page.dart
index 54da1306e..76d222e9b 100644
--- a/flutter/lib/desktop/pages/desktop_setting_page.dart
+++ b/flutter/lib/desktop/pages/desktop_setting_page.dart
@@ -392,12 +392,13 @@ class _GeneralState extends State<_General> {
           child: _OptionCheckBox(context, "Always use software rendering",
               kOptionAllowAlwaysSoftwareRender),
         ),
-        _OptionCheckBox(
-          context,
-          'Check for software update on startup',
-          kOptionEnableCheckUpdate,
-          isServer: false,
-        )
+        if (!bind.isCustomClient())
+          _OptionCheckBox(
+            context,
+            'Check for software update on startup',
+            kOptionEnableCheckUpdate,
+            isServer: false,
+          )
       ],
     ];
     if (bind.mainShowOption(key: kOptionAllowLinuxHeadless)) {
diff --git a/flutter/lib/mobile/pages/connection_page.dart b/flutter/lib/mobile/pages/connection_page.dart
index 51612c9e7..d8a95a601 100644
--- a/flutter/lib/mobile/pages/connection_page.dart
+++ b/flutter/lib/mobile/pages/connection_page.dart
@@ -65,10 +65,12 @@ class _ConnectionPageState extends State<ConnectionPage> {
       }();
     }
     if (isAndroid) {
-      Timer(const Duration(seconds: 1), () async {
-        _updateUrl = await bind.mainGetSoftwareUpdateUrl();
-        if (_updateUrl.isNotEmpty) setState(() {});
-      });
+      if (!bind.isCustomClient()) {
+        Timer(const Duration(seconds: 1), () async {
+          _updateUrl = await bind.mainGetSoftwareUpdateUrl();
+          if (_updateUrl.isNotEmpty) setState(() {});
+        });
+      }
     }
 
     _idController.addListener(() {
diff --git a/libs/hbb_common/src/config.rs b/libs/hbb_common/src/config.rs
index a2ffca9cb..5e8245893 100644
--- a/libs/hbb_common/src/config.rs
+++ b/libs/hbb_common/src/config.rs
@@ -2090,7 +2090,6 @@ pub mod keys {
         OPTION_LANGUAGE,
         OPTION_ENABLE_CONFIRM_CLOSING_TABS,
         OPTION_ENABLE_OPEN_NEW_CONNECTIONS_IN_TABS,
-        OPTION_ENABLE_CHECK_UPDATE,
         OPTION_SYNC_AB_WITH_RECENT_SESSIONS,
         OPTION_SYNC_AB_TAGS,
         OPTION_FILTER_AB_BY_INTERSECTION,