Skip to content

MAC Address Rotation bug breaks arch connectivity #316

@Bluto39

Description

@Bluto39

Windscribe v2 Linux: MAC Address Auto-Rotate Causes Silent Connectivity Failure

Environment

  • Application version: windscribe-v2-bin v2.21.7
  • Distribution: Garuda Linux (base: Arch Linux)
  • Kernel: 6.19.8-zen1-1-zen
  • Desktop: KDE Plasma 6.6.3 (Wayland)
  • Network manager: NetworkManager
  • Hardware: Intel Dual Band Wireless-AC 3168NGW

Summary

Enabling MAC address auto-rotation in Windscribe's settings causes the application to silently report no internet connectivity on every subsequent launch, making it impossible to connect to any VPN location. The application UI loads normally and presents no actionable error. The only symptom visible to the user is a perpetually spinning connection attempt that times out after one hour.


Steps to Reproduce

  1. Install windscribe-v2-bin on Arch Linux / Arch-based distribution.
  2. Open Windscribe, log in, and connect successfully at least once.
  3. Enable MAC address spoofing with auto-rotate in the application settings.
  4. Close and relaunch the application.
  5. Attempt to connect to any location.

Observed Behavior

On every launch after enabling MAC address auto-rotate:

  • The application UI loads normally.
  • The helper service (windscribe-helper.service) starts and manipulates the network interface.
  • The engine immediately reports Internet connectivity: unavailable via the CLI, and ConnectionManager::onNetworkOnlineStateChanged(), isAlive = false in the client log.
  • The application enters a wait state of up to 3,600,000 ms (one hour) before abandoning the connection attempt.
  • No error is shown in the UI identifying MAC spoofing as the cause.
  • Internet connectivity for the entire system is unaffected — all external hosts are reachable normally.
  • Disabling windscribe-helper.service restores normal system internet access.

Root Cause

The client log (~/.local/share/Windscribe/Windscribe2/client.log) confirms the sequence:

14:01:47 - ConnectionManager::onNetworkOnlineStateChanged(), isAlive = false
14:01:52 - Automatic enable firewall before connection
14:01:52 - firewall enabled with ips count: 200
14:01:52 - No internet connection, waiting maximum: 3600000 ms

The isAlive = false state is triggered before any connection attempt. The application's internal network connectivity check fails because MAC address auto-rotation alters the hardware address of the wireless interface at helper startup, causing the network online state detection to misidentify the interface or lose its association state momentarily — long enough for the connectivity check to return false, after which the application waits rather than retrying.

A compounding factor was a per-network protocol preference (networkPreferredProtocols) stored in the settings file with WireGuard hardcoded as non-automatic for the active network. This prevented protocol fallback even if connectivity had been detected.


Workaround

Delete the application settings file to restore defaults:

sudo systemctl stop windscribe-helper
rm ~/.config/Windscribe/Windscribe2.conf
sudo systemctl start windscribe-helper

Re-launch the application and log in again. Do not re-enable MAC address auto-rotate.


Expected Behavior

  • If MAC address rotation causes the internal connectivity check to fail, the application should retry rather than entering a one-hour wait state.
  • The UI should surface a specific, actionable error identifying MAC spoofing as a potential cause of connectivity failure on Linux.
  • Alternatively, MAC address auto-rotate should be disabled by default on Linux given the known interaction with NetworkManager.

Additional Notes

  • The windscribe-helper.service is configured with Before=network-pre.target, meaning it manipulates the network interface before NetworkManager has fully established connectivity. MAC address rotation at this stage is inherently race-condition-prone.
  • The settings file (~/.config/Windscribe/Windscribe2.conf) uses Qt binary encoding and is not human-readable or directly editable, making manual correction of the offending settings impractical without deleting the file entirely.
  • This issue survives package reinstallation, as pacman/paru correctly preserves user config files in ~/.config on removal.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions