Troubleshooting
===============

This document contains some useful debug information.

OSX
---
If you're having troubles with old versions of RiseupVPN that did not have an
uninstaller, and the new installer is not cleanly replacing the previous
install, you might need to manually clean things up. You will need root access to
stop the privileged helper.

First, see if the helper is running:

.. code:: bash

  pgrep bitmask-helper

To stop it:

.. code:: bash

  sudo launchctl unload /Library/LaunchDaemons/se.leap.bitmask-helper.plist

To start it:

.. code:: bash

  sudo launchctl load /Library/LaunchDaemons/se.leap.bitmask-helper.plist
  sudo launchctl start /Library/LaunchDaemons/se.leap.bitmask-helper.plist

Check that it's running:

.. code:: bash

  pgrep bitmask-helper

Manually check that the web api is running, and that it reports a version that matches what you currently have installed:

.. code:: bash

  curl http://localhost:7171/version

Also, you can check that the path near the end of the file /Library/LaunchDaemons/se.leap.bitmask-helper.plist
matches the current path where you installed RiseupVPN.app.

Cleaning up
~~~~~~~~~~~
If you have things messed up and you want to completely delete the bitmask-helper:

.. code:: bash

  sudo launchctl unload /Library/LaunchDaemons/se.leap.bitmask-helper.plist
  sudo rm -rf /Library/LaunchDaemons/se.leap.bitmask-helper.plist

Make sure that "pgrep bitmask-helper" does not return any pid.

Now you can move /Applications/RiseupVPN.app to the Trash, and launch a
recent installer to get a clean install.

Firewall
~~~~~~~~

In the unfortunate event that a crash lets you with a non-usable connection, you can restore the firewall by hand:

.. code:: bash

  # if you see drop ... <bitmask_gateways>, the fw is on
  sudo pfctl -a com.apple/250.BitmaskFirewall -sr
  # clean it up!
  sudo pfctl -a com.apple/250.BitmaskFirewall -F all

Windows
-------
In Windows you can use PowerShell to see if there's an old service Running (it
can be from RiseupVPN, CalyxVPN, LibraryVPN etc...).

.. code:: powershell

  PS C:\Users\admin> Get-Service bitmask-helper-v2

You can also stop it (needs admin)

.. code:: powershell

  PS C:\Users\admin> Stop-Service bitmask-helper-v2

To force logging:

.. code:: bash

  QT_FORCE_STDERR_LOGGING=1 ./riseup-vpn.exe


Ciphersuites and other openvpn params
-------------------------------------
You can specify a custom `openvpn_configuration` block from a local file
(instead of fetching it from `eip-service.json`) via an environment variable:

.. code:: bash

  LEAP_OPENVPN_EXTRA_CONFIG=../extra-config.json ./riseup-vpn

Manual Gateway Selection
------------------------
In the same spirit, you can manually override the gateway selection via an
environment variable that contains the hostname of the gateway:


.. code:: bash

  LEAP_GW=hostname.riseup.net ./riseup.vpn

Dry run
-------

To avoid setting up the routes, you can pass the LEAP_DRYRUN variable:

.. code:: bash

  LEAP_DRYRUN=1 ./riseup.vpn

We should probably restrict this to non-release versions only.
