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
| Symptom | More likely direction | Next step |
|---|---|---|
| The top bar, window switching, and the whole desktop lag after loading a large subscription | GNOME Shell or AppIndicator menu load | Check the session and system logs |
| Only the Clash Verge Rev window freezes | Application UI or WebView | Do not apply this diagnosis directly |
| The desktop is responsive, but websites and nodes time out | Node, DNS, rules, or TUN | Troubleshoot from connection records |
| The desktop freezes periodically without switching subscriptions | Another extension, graphics driver, or desktop issue | Compare 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.
sudo systemctl rebootAfter Returning to the Desktop
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.
Open Settings from the main window
Do not expand proxy-group menus from the tray. Open the Clash Verge Rev main window directly.
Change the tray display mode first
Select the same large subscription for a controlled retest only after the display setting has been disabled.
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.
printf 'session=%s\n' "$XDG_SESSION_TYPE"
gnome-shell --version
clash-verge --version 2>/dev/null || truejournalctl -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.
tray_proxy_groups_display_mode: disableThe 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
- Clash Verge RevReproduction Report for an AppIndicator Menu Freeze Triggered by a Large Subscription on Linux/GNOME
- Clash Verge Revv2.5.2 Type Definition for Tray Proxy-Group Display Mode
- Clash Verge Revv2.5.2 Chinese Setting for Tray Proxy-Group Display Mode
- Clash Verge Revv2.5.2 verge.yaml Configuration Field and Default Value
- Ubuntu AppIndicatorsUbuntu AppIndicator dbusMenu.js Error Storm and GNOME Shell Lag Report
- Clash Verge RevClash Verge Rev v2.5.2 stable release notes
