Build Issues
Cargo Build Failures
”failed to run custom build command”
Cause: Missing system dependencies or protobuf compiler. Solution:- Debian/Ubuntu
- Fedora/RHEL
- macOS
- Windows
”could not find wintun.dll”
Platform: Windows
Solution:
Linker errors on Windows
Cause: Missing Visual Studio Build Tools or wrong environment. Solution:- Install Visual Studio 2022 Build Tools
- Source the vcvars script:
Node/NPM Issues
”command not found: volta” or “wrong Node version”
Solution: Install volta and let it manage Node.js versions:- Linux
- macOS
- Windows
”Cannot find module” or npm install fails
Solution:Cross-compilation Issues
ARM64 build fails on x64 Linux
Solution:Runtime Issues
Daemon Won’t Start
”Permission denied” or “Address already in use”
Cause: Daemon must run as root/administrator. Solution:- Linux/macOS
- Windows
Daemon fails with “cannot connect to system service”
Cause: RPC socket path mismatch or permissions. Solution:GUI Issues
GUI shows “Lost contact with system service”
Cause: Daemon not running or crashed. Solution:-
Check if daemon is running:
-
Check daemon logs:
- Linux/macOS:
/var/log/mullvad-vpn/daemon.log - Windows:
C:\ProgramData\Mullvad VPN\daemon.log
- Linux/macOS:
- Restart the daemon
GUI won’t start in development mode
Solution:- Daemon not running
- Wrong
MULLVAD_PATHenvironment variable - Missing dependencies
Tunnel Issues
”Failed to set up tunnel” or connection timeouts
Debugging steps:-
Enable verbose logging:
-
Check firewall isn’t blocking:
-
Test API connectivity:
macOS: Offline detection stuck
Known issue: macOS offline detection can be unreliable, especially after sleep. Workaround:Platform-Specific Issues
Windows
”Failed to initialize split tunneling”
Cause: Driver not loaded or incompatible. Solution:-
Check driver is loaded:
-
Reinstall the driver (requires admin):
BSOD or driver crashes
Cause: Split tunnel driver issue. Workaround: Build without split tunneling or use older driver version. Report the issue with:- Windows version
- Driver version
- Crash dump
macOS
”Full Disk Access required” for split tunneling
Cause: macOS 10.15+ requires FDA permission. Solution:- Go to System Preferences → Security & Privacy → Privacy → Full Disk Access
- Add
mullvad-daemon - Restart the daemon
High CPU usage
Cause: Bug in Electron or daemon monitoring. Solution:- Update to latest Electron version
- Check for daemon log spam
- Profile with Activity Monitor or Instruments
Linux
”Operation not permitted” with cgroups
Cause: Insufficient permissions or cgroups not available. Solution:GUI crashes immediately on startup
Cause: Missing icon theme or AppArmor profile. Solution:Debugging Tools
Environment Variables
Use these environment variables for debugging: Firewall Debugging:Logging
Increase log verbosity:- Linux/macOS:
/var/log/mullvad-vpn/daemon.log - Windows:
%PROGRAMDATA%\Mullvad VPN\daemon.log
- Open DevTools in GUI (Ctrl+Shift+I / Cmd+Option+I)
- Check Console tab for JavaScript errors
Testing API Connectivity
Capturing Network Traffic
- Linux
- macOS
- Windows
Getting Help
If you’re still stuck:- Check existing issues: GitHub Issues
- Search discussions: GitHub Discussions
- Read documentation: Check docs/ folder in repo
- Report a bug: Include:
- OS and version
- Mullvad version
- Steps to reproduce
- Relevant logs
- Expected vs actual behavior
Next Steps
Build Instructions
Complete build setup guide
Known Issues
Platform-specific limitations and issues
Release Process
How to create a release
Architecture
Understanding the codebase