Connectivity Troubleshooting · Clash Technical Blog

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

If Ubuntu GNOME freezes immediately after switching to a subscription with many nodes and policy groups, inspect AppIndicator and GJS logs and disable the tray policy-group menu. Retest desktop responsiveness, node selection, and connectivity, and keep a way to restore the original settings.

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

After switching subscriptions, distinguish a frozen desktop from an unresponsive app window. If the desktop still responds, save your work and quit the client normally. If you can no longer operate it, recover the desktop before checking tray menus and logs from that period. Once back in the desktop, keep the same subscription and compare only the proxy-group menu display setting.

The whole GNOME desktop stalls after a large subscription switch: tray-menu load may be involved

Record when you switch to the large subscription, check whether the top bar and window switching slow down together, and look for GNOME Shell, Ubuntu AppIndicators, dbusMenu.js, or GJS garbage-collection errors. AppIndicator puts application menus in the system tray. A slow app window alone or node timeouts are different symptoms.

Clash Verge Rev issue #7779 was reported on Ubuntu 22.04.5, GNOME 42.9, and X11, using a subscription with 347 nodes, 14 proxy groups, and up to 349 nodes in one group. A normal subscription worked, but switching to the large one produced many repeated errors and made the entire desktop 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.

Distinguish desktop, application-window and connection failures

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

How to restart normally when the desktop freezes, avoiding a forced power-off

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'

Session and subscription-size records

  • 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

The same large subscription must allow desktop response, node selection in the main window and real requests

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.

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

Still frozen after disabling tray groups: check the window, extensions or connections

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.

Many repeated AppIndicator/GJS errors still appear

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.

If the tray menu is needed, switch back to a verified small subscription before enabling it

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