-
Notifications
You must be signed in to change notification settings - Fork 117
Troubleshooting and Diagnostics
Furious separates connection state, application logs, core output, tun2socks output, traffic statistics, and endpoint information. Start with the narrowest signal that corresponds to the failure instead of changing several settings at once.
- Reproduce the problem with one profile selected.
- Note the visible connection state: Disconnected, Connecting, Connected, or Disconnecting.
- Open Log and choose All Logs.
- Repeat the action and identify the first relevant error, not only the final cleanup message.
- Filter by Application, Core, or Tun2socks to isolate its owner.
- Disable optional TUN and custom routing temporarily to test the basic proxy path.
- Re-enable one feature at a time.
Do not post an unredacted profile, subscription URL, QR code, complete core configuration, environment block, or credential-bearing log.
Furious uses one unified Log page. Every entry belongs to a registered category:
- Application — Furious Python logging, controllers, services, repositories, UI, and host integration;
- Core — Xray, Hysteria, Hysteria 2, External Core, and other runtime output;
- Tun2socks — Furious's application-managed tun2socks process;
- plugin-provided categories — added dynamically when installed extensions register them.
Choose All Logs for chronology or a category for focused inspection. The selected filter persists.
The action row provides:
- File → Save As...
- Edit → Copy / Select All
- View → Zoom In / Zoom Out
- Auto Scroll Down
- Auto Clear Log
Collection continues while the Log page is hidden, but expensive document rendering is deferred until the page is visible. Retained entries and producer queues are bounded so a noisy core cannot grow memory without limit. Auto Clear affects runtime logs according to the configured limit; it does not make the page the owner of core-output draining.
Enable Metrics Collection in Settings to collect data while connected. The Home status chips and Metrics page can then show upload/download speed and accumulated usage.
Statistics require a plugin-provided monitor for the active runtime. If a backend or profile does not expose usable counters, the UI remains unavailable/empty rather than starting another core solely for metrics.
Important behavior:
- sampling occurs only for an active connection with a supported monitor;
- queries run outside the GUI thread;
- the first sample establishes a baseline, so its speed is zero;
- a counter reset or core restart establishes a new baseline rather than producing a negative speed;
- Clear Traffic Usage Statistics On Reconnect controls whether accumulated session usage is cleared across reconnections.
The Metrics page also offers time-range and display-granularity controls. Historical presentation is bounded; it is diagnostic telemetry, not billing-grade accounting.
When Enable Proxy Endpoint Information is enabled, the Metrics page can request the observed public IPv4/IPv6 and approximate location through the active proxy.
This feature:
- is lazy and only requests data when its UI is relevant;
- contacts third-party IP/geolocation providers;
- displays approximate, not authoritative, location data;
- does not prove that every application on the host uses the proxy.
Disable it if you do not want those requests or if the providers are blocked in your environment.
For a PyPI/source installation, start it from a terminal:
python -m FuriousThis preserves startup diagnostics that a GUI launcher may hide. Confirm that the installed Python and PySide6 combination matches the supported platform described in Install from PyPI.
Normal application startup enforces a single instance. Check the tray and existing desktop session before assuming a second launch failed.
Check the Application log for configuration validation, DNS, route, privilege, or process-start errors. Then check Core for a syntax error or early process exit.
For External Core, a process can survive startup but fail to open the configured HTTP/SOCKS listener. See External Core.
The core may be running while Furious's connectivity probe cannot reach its test URL. Check:
- DNS resolution;
- selected routing mode;
- configured local HTTP proxy;
- firewall or captive portal;
- Customize Network Test URL... in Settings.
Use a browser and the table latency tests as additional evidence. Do not treat one probe as proof that the core exited.
If System Proxy is set to Do Not Change System Proxy, configure the application manually or enable TUN. If automatic system proxy is enabled, remember that some applications ignore host proxy settings.
See Quick Start and TUN Mode.
Return routing to Global, disconnect cleanly, and test again. Direct/bypass rules can loop when application tun2socks owns the TUN path. Verify privileges and platform prerequisites in TUN Mode.
Routing choices are backend capabilities. Hysteria 2 and External Core intentionally expose none. For a named Xray route, verify that the routing profile is enabled. See Routing.
Open Subscription and inspect its status/error, then Application logs. Verify the URL, proxy policy, user agent, decoder format, and regular expression filter. Furious's standard decoder accepts newline-separated share links and their supported Base64 envelope; it does not treat arbitrary Clash YAML or sing-box JSON as the same format.
Confirm that Metrics Collection is enabled and that the active runtime provides a statistics monitor. A normal proxy connection can work without traffic-statistics support.
Automatic cleanup runs during ordinary disconnect and shutdown. A force kill, power loss, or host failure can interrupt it. Reopen Furious and disconnect normally, or restore the operating system's proxy settings using its native settings UI.
Do not delete unrelated routes or processes by name.
The Home table context menu provides several different tests:
- Ping latency tests ICMP reachability where the host/network permits it.
- Tcping latency tests whether a TCP connection can be established.
- Download speed tests data transfer through the prepared proxy-only path.
- Clear Test Results removes displayed test values; it does not change the profile.
A failed ping does not necessarily mean the proxy protocol is unusable, because many servers block ICMP.
Include:
- Furious version and installation type (packaged application, PyPI, or source);
- operating system and CPU architecture;
- Python and PySide6 versions for source/PyPI installations;
- backend and protocol;
- whether System Proxy, TUN, native TUN, application tun2socks, and custom routing were enabled;
- exact reproduction steps;
- the smallest relevant redacted log excerpt;
- whether the problem reproduces with Global routing and TUN disabled.
For crashes, include the parent-process fallback message and any terminal output. For visual issues, include the theme, display scaling, and a screenshot.
Report issues at GitHub Issues.