Connectivity Troubleshooting · Clash Technical Blog

How to Fix Clash Verge Rev Freezing with a Large Subscription on Linux

If the Ubuntu GNOME desktop starts lagging immediately after switching to a subscription with many nodes and proxy groups, check AppIndicator and GJS logs, then disable proxy-group menus in the tray. This guide covers recovery, verification, and rollback.

  • Clash Verge Rev
  • Linux
  • GNOME
  • AppIndicator
  • Large subscription
On this page

Confirm Whether the GNOME Tray Menu Is Freezing the Desktop

This guide applies only when a Linux desktop starts lagging immediately after switching to a subscription with many nodes and proxy groups, while logs point to GNOME Shell, Ubuntu AppIndicators, dbusMenu.js, or GJS garbage collection. A slow Clash Verge Rev window, node timeouts, or inaccessible websites alone indicate a different problem.

Clash Verge Rev issue #7779 was reported on Ubuntu 22.04.5 with GNOME 42.9 and X11. The subscription contained 347 nodes across 14 proxy groups, with up to 349 nodes in one group. A normal subscription worked, but switching to the large one triggered an error storm and desktop-wide lag after about one second.

The reporter attributed the behavior to the oversized proxy-group submenus generated in the tray and ran an A/B comparison on the same system with the same subscription. The freeze stopped after tray proxy-group display was disabled. The issue remains open, so this is a reproducible diagnostic lead, not a universal root cause confirmed by the maintainers.

Classify the Symptom First

SymptomMore likely directionNext step
The top bar, window switching, and the whole desktop lag after loading a large subscriptionGNOME Shell or AppIndicator menu loadCheck the session and system logs
Only the Clash Verge Rev window freezesApplication UI or WebViewDo not apply this diagnosis directly
The desktop is responsive, but websites and nodes time outNode, DNS, rules, or TUNTroubleshoot from connection records
The desktop freezes periodically without switching subscriptionsAnother extension, graphics driver, or desktop issueCompare with the client fully closed

Recover the Desktop Before Reopening the Oversized Menu

If the desktop still responds, do not click the tray icon or switch Profiles repeatedly. Save open work, disable the system proxy and TUN from the Clash Verge Rev main window, then exit the client normally. Confirm that direct system networking works before restarting the desktop session or the computer.

If GNOME Shell is almost unresponsive but Ctrl+Alt+F3 still opens a text console, sign in there and use the normal reboot command. Cutting power can corrupt unwritten files and should be the last resort only when the keyboard, console, and system power menu are all unavailable.

Request a Normal Reboot from the Text Console
sudo systemctl reboot

After Returning to the Desktop

  1. Keep the system on a direct connection first

    Do not immediately enable TUN, the system proxy, or the large subscription that triggered the problem. First confirm that the desktop and basic network are stable.

  2. Open Settings from the main window

    Do not expand proxy-group menus from the tray. Open the Clash Verge Rev main window directly.

  3. Change the tray display mode first

    Select the same large subscription for a controlled retest only after the display setting has been disabled.

  4. Keep the failure timestamp

    Note when you switched subscriptions and when the desktop began lagging, then extract only the matching log window.

Record the Session, Versions, and AppIndicator Errors

Record the distribution, GNOME version, session type, and Clash Verge Rev version before exporting a few minutes of system logs around the failure. Recovery differs between X11 and Wayland, so “latest Ubuntu” is not enough detail.

The query below reads logs from the current boot only. The pattern resembles issue #7779 only if ubuntu-appindicators, dbusMenu.js, JSAPI during, already disposed, or PopupSubMenuMenuItem appears immediately after the subscription switch.

Logs may contain usernames, hostnames, subscription details, or node information. Redact them before sharing, keep only a few minutes around the reproduction, and do not upload the complete system log.

Record Desktop and Session Versions
printf 'session=%s\n' "$XDG_SESSION_TYPE"
gnome-shell --version
clash-verge --version 2>/dev/null || true
Filter Relevant Logs from the Current Boot
journalctl -b --no-pager | grep -E 'gnome-shell|ubuntu-appindicators|dbusMenu\.js|JSAPI during|already disposed|PopupSubMenuMenuItem'

Baseline Before the Change

  • Distribution, GNOME version, and X11 or Wayland session type are recorded
  • The exact Clash Verge Rev version and installation source are recorded
  • A normal subscription does not trigger the same lag
  • The node count, proxy-group count, and largest group size in the large subscription are recorded
  • The failure timestamp and matching logs are saved and redacted
  • The desktop remains stable with the system proxy and TUN disabled

Disable Tray Proxy-Group Menus Before Switching Subscriptions

In the Clash Verge Rev main window, open “Settings → Interface Settings” and set “Tray Proxy Groups Display Mode” to “Disable.” The official v2.5.2 type definition supports default, inline, and disable, and the Chinese settings resource labels the same choices as default, first-level menu, and disabled.

This change only stops proxy groups and large node lists from expanding into the system tray menu. Subscriptions, rules, nodes, and proxy groups in the main window remain available. Choose nodes from the main window afterward, and do not repeatedly click the old tray submenu to confirm the setting.

If the graphical interface cannot save the setting, use the application-directory entry in Settings to locate verge.yaml. Exit the client completely, copy the entire directory as a backup, then explicitly set tray_proxy_groups_display_mode to disable. Do not guess the data-directory path or overwrite files while the application is running.

Change Only This Setting in verge.yaml
tray_proxy_groups_display_mode: disable

Verify Four Things with the Same Subscription

Keep the system, client version, and subscription unchanged. Change only the tray proxy-group display mode, then switch from the main window to the large subscription that previously triggered the lag. This single-variable comparison is more informative than deleting nodes, replacing the core, and disabling TUN at the same time.

After switching, wait longer than the original trigger time, then open a proxy group in the main window, select a node, and make a real HTTPS request. Do not rely on latency numbers alone; desktop responsiveness, tray structure, logs, and a real connection must all pass.

Verification checklist

  • The top bar, window switching, and keyboard shortcuts remain responsive after loading the same large subscription
  • The tray menu no longer generates proxy-group and node submenus
  • The logs show no new burst of dbusMenu.js, JSAPI during, or already disposed errors
  • Proxy groups remain visible and nodes remain selectable in the main window
  • A real HTTPS request succeeds and its connection appears in Connections
  • The disabled setting remains effective after a full exit and restart

Reclassify the Problem If Disabling the Menu Does Not Help

The tray submenu is gone, but only the application window is unresponsive

Check WebView, rendering, and application logs instead of attributing it to the GNOME Shell menu.

The desktop still freezes periodically after Clash Verge Rev is closed

Check other GNOME extensions, graphics drivers, and system logs; this workaround does not apply.

The desktop is responsive and only the connection fails

Troubleshoot the node, DNS, rules, system proxy, or TUN without restoring the oversized tray menu.

The same AppIndicator/GJS error storm continues

Keep the setting disabled, note whether another application also provides an oversized tray menu, and submit the complete comparison to the project.

Do not begin by uninstalling Ubuntu AppIndicators, deleting the large subscription, or reinstalling the desktop. Those actions change too many variables and may affect other applications. First compare Clash Verge Rev fully closed, a normal subscription, and tray proxy-group display disabled to identify the actual trigger.

Roll Back Safely and Submit Evidence If You Need Tray Switching

If you must restore tray proxy-group menus, switch to a verified small subscription in the main window before changing the display mode back to “Default” or “First-level menu.” Do not restore the menu while the large subscription is active. If the lag returns, switch back to disable immediately and continue selecting nodes from the main window.

When reporting the problem upstream, include the distribution, GNOME version and session type, Clash Verge Rev version, subscription size, trigger time, redacted logs, and same-condition results for default versus disable. Do not upload subscription links, node addresses, credentials, or the complete configuration.

As of 9/8/2026, issue #7779 remains open with no linked formal fix. The report used 2.5.3 AutoBuild, while the latest official stable release remains v2.5.2. The display switch exists in v2.5.2, but its release notes do not claim to fix freezes caused by oversized tray menus, so the setting's presence does not mean the problem has been resolved.

References