proton-vpn-gtk-app
proton-vpn-gtk-app copied to clipboard
asyncio.exceptions.TimeoutError on Connect to VPN
Please complete the following checklist (by adding [x]):
- [X ] I have searched open and closed issues for duplicates
- [ X] This isn't a feature request
- [ :)] This is not a report about my app not working as expected
2024-06-22T21:42:11.904459 | proton.vpn.app.gtk.widgets.main.exception_handler:175 | CRITICAL | APP:CRASH | Unexpected error.
Traceback (most recent call last):
File "/usr/lib/python3.10/asyncio/tasks.py", line 456, in wait_for
return fut.result()
asyncio.exceptions.CancelledError
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/lib/python3.10/concurrent/futures/_base.py", line 451, in result
return self.__get_result()
File "/usr/lib/python3.10/concurrent/futures/_base.py", line 403, in __get_result
raise self._exception
File "/usr/lib/python3/dist-packages/proton/vpn/core/connection.py", line 165, in connect
await self._connector.connect(
File "/usr/lib/python3/dist-packages/proton/vpn/connection/vpnconnector.py", line 198, in connect
await self._on_connection_event(
File "/usr/lib/python3/dist-packages/proton/vpn/connection/vpnconnector.py", line 230, in _on_connection_event
event = await self._update_state(new_state)
File "/usr/lib/python3/dist-packages/proton/vpn/connection/vpnconnector.py", line 250, in _update_state
new_event = await state_tasks
File "/usr/lib/python3/dist-packages/proton/vpn/connection/states.py", line 225, in run_tasks
await self.context.kill_switch.enable(
File "/usr/lib/python3/dist-packages/proton/vpn/killswitch/backend/linux/networkmanager/nmkillswitch.py", line 59, in enable
await self._ks_handler.add_full_killswitch_connection(permanent)
File "/usr/lib/python3/dist-packages/proton/vpn/killswitch/backend/linux/networkmanager/killswitch_connection_handler.py", line 136, in add_full_killswitch_connection
await _wrap_future(
File "/usr/lib/python3/dist-packages/proton/vpn/killswitch/backend/linux/networkmanager/killswitch_connection_handler.py", line 51, in _wrap_future
return await asyncio.wait_for(
File "/usr/lib/python3.10/asyncio/tasks.py", line 458, in wait_for
raise exceptions.TimeoutError() from exc
asyncio.exceptions.TimeoutError
After attempting to connect there will be a dummy killswitch left in the network manager that you have to remove before your connection will resume.
Description: Ubuntu 22.04.4 LTS
Proton VPN Linux Client 4.3.2
Hey @divSelector , do you have IPv6 disabled ?
I'll give you some more information about how I've disabled ipv6 @calexandru2018
In /etc/default/grub, the following is added to the bottom:
GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1 quiet splash"
GRUB_CMDLINE_LINUX="ipv6.disable=1"
Then you apply these to the kernel with update-grub
I suspected while talking to the other user that we must have something in common and I was trying to think of what it could be. I suspected it was this, but I was too lazy to try undoing it until you asked.
This is indeed the cause.
I have disabled IPv6 but the app worked before and now it does not connect to a server.
I have disabled IPv6 but the app worked before and now it does not connect to a server.
It looks like that is pretty much where we are at right now. I'm not sure if they plan to fix it or if it's a wont fix.
We'll find out :P
@Giger22 and @divSelector, do you mind providing me the output of the following command:
cat /sys/module/ipv6/parameters/disable
We're working on how to detect if this is disabled at kernel level and would appreciate some help in trying to detect this.
cat /sys/module/ipv6/parameters/disable
1
This is while it's disabled at kernel level.
It was 0 before I disabled it again.
@calexandru2018
Same.
cat /sys/module/ipv6/parameters/disable
1
same, unusable, stable or beta. DATEANDTIMEREOVED | proton.vpn.core.connection:168 | INFO | CONN.CONNECT:START | Server: HIDDEN / Domain: HIDDEN / OpenVPN Ports: ProtocolPorts(udp=[80, 51820, 4569, 1194, 5060], tcp=[443, 7770, 8443]) / WireGuard Ports: ProtocolPorts(udp=[443, 88, 1224, 51820, 500, 4500], tcp=[443]) / Protocol: openvpn-udp / Backend: None 2024-07-26T12:48:48.870092 | proton.vpn.connection.vpnconnector:238 | INFO | CONN:STATE_CHANGED | Connecting 2024-07-26T12:48:53.883186 | proton.vpn.app.gtk.widgets.main.exception_handler:175 | CRITICAL | APP:CRASH | Unexpected error. Traceback (most recent call last): File "/usr/lib/python3.12/concurrent/futures/_base.py", line 449, in result return self.__get_result() ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/concurrent/futures/_base.py", line 401, in __get_result raise self._exception TimeoutError``
Been running into this for a month or two. I've been using an openvpn profile to workaround it, but I'd like to get the official desktop app working.
OS: Ubuntu 22.04 ProtonVPN client: 4.4.2 IPv6 status: enabled
I guess there's no interest from the proton team. I am a paid user and app broken for weeks. Break the mac and windows one for weeks to see how it will be perceived?
Been running into this for a month or two. I've been using an openvpn profile to workaround it, but I'd like to get the official desktop app working.
OS: Ubuntu 22.04 ProtonVPN client: 4.4.2 IPv6 status: enabled
So you're having issues and your IPv6 is enabled?
I was considering building a VM to use the VPN inside so I don't have to change my system for one application. But maybe I should look into a command line work around. What does yours look like exactly?
Been running into this for a month or two. I've been using an openvpn profile to workaround it, but I'd like to get the official desktop app working.
OS: Ubuntu 22.04 ProtonVPN client: 4.4.2 IPv6 status: enabled
So you're having issues and your IPv6 is enabled?
I was considering building a VM to use the VPN inside so I don't have to change my system for one application. But maybe I should look into a command line work around. What does yours look like exactly?
Check out their guide: https://protonvpn.com/support/linux-openvpn/
There are lots of customization options and other GUIs available for OpenVPN. I tried Network Manager and another OpenVPN client from the app store, but got mysterious errors from both. I just stick to openvpn CLI for now since it works.
Once I got it setup, I just open a new terminal, run sudo openvpn ~/Downloads/my-open-vpn-filename.protonvpn.udp.ovpn. Press CTRL+C to disconnect. I edited the *.opvn file to automatically enter my user/pass.
Checked again, without disabled IPv6 it works. I guess #wontfix?
Also running into this lately with "ipv6.disable=1" set. It used to work just fine with that parameter, but now it does not. Any chance of looking into this?
Last update fixed this, I can connect with IPv6 disabled through gtk-app.
UPDATE:
Something got wrong and Wireguard protocol does not work anymore. I can still connect using TCP and UDP.
proton.vpn.app.gtk.app:57 | INFO | APP:PROCESS_START | self=<app.App object at 0x707fefa71b80 (proton+vpn+app+gtk+app+App at 0x5edc22324b10)>
proton.vpn.core.refresher.vpn_data_refresher:167 | INFO | APP.VPN_DATA_REFRESHER:ENABLE | VPN data refresher service enabled.
proton.vpn.core.refresher.vpn_data_refresher:175 | INFO | Next client config refresh scheduled in 2:43:52.806795
proton.vpn.core.refresher.vpn_data_refresher:184 | INFO | Next server list refresh scheduled in 0:00:00
proton.vpn.core.refresher.vpn_data_refresher:193 | INFO | Next certificate refresh scheduled in 2 days, 12:43:28.634087
proton.vpn.core.refresher.vpn_data_refresher:202 | INFO | Next feature flags refresh scheduled in 1:08:18.649411
proton.vpn.session.utils:107 | INFO | API:REQUEST | '/vpn/v1/loads'
proton.vpn.app.gtk.services.reconnector.reconnector:95 | INFO | VPN reconnector enabled.
proton.vpn.app.gtk.controller:147 | INFO | APP.STARTUP:STARTUP_ACTIONS | Running startup actions
proton.vpn.app.gtk.widgets.vpn.vpn_widget:199 | INFO | APP.VPN:WIDGET_READY | VPN widget is ready (load time: 0.21 seconds)
proton.vpn.app.gtk.services.reconnector.reconnector:175 | INFO | Network connectivity was detected.
proton.vpn.app.gtk.widgets.vpn.quick_connect_widget:104 | INFO | UI.TRAY:CONNECT | Connect to fastest server
proton.vpn.core.connection:370 | INFO | CONN.CONNECT:START | Server: NL-FREE#121 / Domain: node-nl-157.protonvpn.net / IP: 149.34.244.174 / OpenVPN Ports: ProtocolPorts(udp=[80, 51820, 4569, 1194, 5060], tcp=[443, 7770, 8443]) / WireGuard Ports: ProtocolPorts(udp=[443, 88, 1224, 51820, 500, 4500], tcp=[443]) / Protocol: wireguard / Backend: None
proton.vpn.core.connection:384 | INFO | Using certificate based authentication for openvpn: True
proton.vpn.core.connection:472 | INFO | CONN:STATE_CHANGED | Connecting
proton.vpn.backend.linux.networkmanager.core.networkmanager:113 | INFO | VPN server NOT reachable.
proton.vpn.core.connection:472 | INFO | CONN:STATE_CHANGED | Error
proton.vpn.connection.states:373 | WARNING | Reached connection error state: Timeout (None)
proton.vpn.app.gtk.services.reconnector.reconnector:190 | INFO | VPN connection drop was detected.
proton.vpn.app.gtk.services.reconnector.reconnector:132 | INFO | Reconnection attempt #0 scheduled in 0.94 seconds.
proton.vpn.app.gtk.services.reconnector.reconnector:220 | INFO | Reconnecting (attempt #0)...
proton.vpn.core.connection:370 | INFO | CONN.CONNECT:START | Server: NL-FREE#121 / Domain: node-nl-157.protonvpn.net / IP: 149.34.244.174 / OpenVPN Ports: ProtocolPorts(udp=[80, 51820, 4569, 1194, 5060], tcp=[443, 7770, 8443]) / WireGuard Ports: ProtocolPorts(udp=[443, 88, 1224, 51820, 500, 4500], tcp=[443]) / Protocol: wireguard / Backend: linuxnetworkmanager
proton.vpn.core.connection:384 | INFO | Using certificate based authentication for openvpn: True
proton.vpn.core.connection:472 | INFO | CONN:STATE_CHANGED | Disconnecting
proton.vpn.core.connection:472 | INFO | CONN:STATE_CHANGED | Disconnected
proton.vpn.connection.persistence:112 | WARNING | CONN.PERSISTENCE:REMOVE | Connection persistence not found when trying to remove it: /home/artix/.cache/Proton/VPN/connection/connection_persistence.json
proton.vpn.core.connection:472 | INFO | CONN:STATE_CHANGED | Connecting
proton.vpn.backend.linux.networkmanager.core.networkmanager:113 | INFO | VPN server NOT reachable.
proton.vpn.core.connection:472 | INFO | CONN:STATE_CHANGED | Error
proton.vpn.connection.states:373 | WARNING | Reached connection error state: Timeout (None)
proton.vpn.app.gtk.services.reconnector.reconnector:190 | INFO | VPN connection drop was detected.
proton.vpn.app.gtk.services.reconnector.reconnector:132 | INFO | Reconnection attempt #1 scheduled in 1.84 seconds.
proton.vpn.app.gtk.services.reconnector.reconnector:220 | INFO | Reconnecting (attempt #1)...
proton.vpn.core.connection:370 | INFO | CONN.CONNECT:START | Server: NL-FREE#121 / Domain: node-nl-157.protonvpn.net / IP: 149.34.244.174 / OpenVPN Ports: ProtocolPorts(udp=[80, 51820, 4569, 1194, 5060], tcp=[443, 7770, 8443]) / WireGuard Ports: ProtocolPorts(udp=[443, 88, 1224, 51820, 500, 4500], tcp=[443]) / Protocol: wireguard / Backend: linuxnetworkmanager
proton.vpn.core.connection:384 | INFO | Using certificate based authentication for openvpn: True
proton.vpn.core.connection:472 | INFO | CONN:STATE_CHANGED | Disconnecting
proton.vpn.core.connection:472 | INFO | CONN:STATE_CHANGED | Disconnected
proton.vpn.connection.persistence:112 | WARNING | CONN.PERSISTENCE:REMOVE | Connection persistence not found when trying to remove it: /home/artix/.cache/Proton/VPN/connection/connection_persistence.json
proton.vpn.core.connection:472 | INFO | CONN:STATE_CHANGED | Connecting
proton.vpn.core.refresher.server_list_refresher:66 | WARNING | Server list refresh failed: No working transports found
proton.vpn.core.refresher.server_list_refresher:76 | INFO | Next server list refresh scheduled in 0:17:24.002714
proton.vpn.backend.linux.networkmanager.core.networkmanager:117 | INFO | VPN server REACHABLE.
proton.vpn.backend.linux.networkmanager.core.localagent_mixin:61 | INFO | Waiting for agent status from node-nl-157.protonvpn.net...
proton.vpn.backend.linux.networkmanager.core.localagent_mixin:95 | INFO | Requesting VPN connection features...
proton.vpn.backend.linux.networkmanager.core.localagent_mixin:97 | INFO | VPN connection features requested.
proton.vpn.app.gtk.widgets.vpn.connection_status_widget:81 | INFO | UI:DISCONNECT | Disconnect from VPN
proton.vpn.core.connection:472 | INFO | CONN:STATE_CHANGED | Disconnecting
proton.vpn.backend.linux.networkmanager.core.local_agent.listener:72 | INFO | Agent listener successfully stopped.
proton.vpn.core.connection:472 | INFO | CONN:STATE_CHANGED | Disconnected
proton.vpn.connection.persistence:112 | WARNING | CONN.PERSISTENCE:REMOVE | Connection persistence not found when trying to remove it: /home/artix/.cache/Proton/VPN/connection/connection_persistence.json
proton.vpn.app.gtk.services.reconnector.reconnector:216 | INFO | VPN connection is disconnected.
proton.vpn.app.gtk.widgets.vpn.quick_connect_widget:104 | INFO | UI.TRAY:CONNECT | Connect to fastest server
proton.vpn.core.connection:370 | INFO | CONN.CONNECT:START | Server: NL-FREE#121 / Domain: node-nl-157.protonvpn.net / IP: 149.34.244.174 / OpenVPN Ports: ProtocolPorts(udp=[80, 51820, 4569, 1194, 5060], tcp=[443, 7770, 8443]) / WireGuard Ports: ProtocolPorts(udp=[443, 88, 1224, 51820, 500, 4500], tcp=[443]) / Protocol: wireguard / Backend: None
proton.vpn.core.connection:384 | INFO | Using certificate based authentication for openvpn: True
proton.vpn.core.connection:472 | INFO | CONN:STATE_CHANGED | Connecting
proton.vpn.backend.linux.networkmanager.core.networkmanager:113 | INFO | VPN server NOT reachable.
proton.vpn.core.connection:472 | INFO | CONN:STATE_CHANGED | Error
proton.vpn.connection.states:373 | WARNING | Reached connection error state: Timeout (None)```
Issue #110 may be related. Facing same on Pop!_OS 22.04
Hi.
Gentoo user here.
I had this exact issue. It was because my kernel was built without CONFIG_DUMMY.
re-compiling the kernel with this driver fixed it for me.
Perhaps some distros are not bothering with this driver ?
Looks like its primary use case is for PPP/SLIP/PLIP ( common in the 90's !? )
@jrhedman - does Pop!_OS 22.04 ship with this driver? ( dummy.ko )
Looks like ProtonVPN uses this to implement the kill-switch.. ( it still tries to setup the interface even when killswitch is disabled in the config ).
If this is the cause of the problem for other people too, then perhaps the firewall could be used to implement the kill-switch ? Other Linux VPN's ive used in the past used the firewall to implement the kill-switch.
@jrhedman - does Pop!_OS 22.04 ship with this driver? ( dummy.ko )
I'll try to confirm when I'm back home this weekend but as Pop!_OS is built off Ubuntu, going by this thread, I'm going to say it's absent.
I'll try to confirm when I'm back home this weekend but as Pop!_OS is built off Ubuntu, going by this thread, I'm going to say it's absent.
Thanks! Problem identified then!
Those who have the know-how should edit the kernel config and recompile. (Or switch to a distro that ships it by default). While we wait for proton devs to sort it. (Or convince distro kernel mainters to include it by default).
@chris-stones I have the same problem under Pop!_OS. Did you manage to make it work? The Firefox plugin works properly.
@chris-stones I have the same problem under Pop!_OS. Did you manage to make it work? The Firefox plugin works properly.
As root, run modprobe dummy.
Then check if the driver is loaded with lsmod | grep dummy.
If you don't see dummy.ko, then your distro doesn't supply the dummy network driver.
I personally think this is a proton bug, as not all distros provide this driver, and most VPNs use the firewall to implement the kill switch.
To work around the bug, you need to mess about with your kernel, which is a bit advanced. I've not used pop_os, so I can't advise on how that works.
Perhaps open a bub report on pop_os bug tracker, linking to this issue, and ask for dummy.ko to be included by default.
Easy solution. Use a linux distro that supplies the driver. OR, even easier, use a VPN provider that better supports Linux... I recomend iVPN. Linux users get same support as windows users.
Thank you @chris-stones. I will not mess with things I don't understand. I will rather turn to another VPN provider.