protonvpn / proton-vpn-gtk-app Goto Github PK
View Code? Open in Web Editor NEWOfficial ProtonVPN Linux app
Home Page: https://protonvpn.com/download-linux
License: GNU General Public License v3.0
Official ProtonVPN Linux app
Home Page: https://protonvpn.com/download-linux
License: GNU General Public License v3.0
We are happy to answer your questions about the code or discuss technical ideas.
Please complete the following checklist (by adding [x]):
I am on arch linux and have bspwm, when use anything like old protovpn-gui/cli it openes fine on startup but when i put this new gtk app it dont open forsometimes it just shows genric png type image agter 2 minute it openes fine, tried running it throught termianl got output
╭─ishank@ArchBeast /home/ishank ‹system›
╰─$ protonvpn-app
2024-02-24T15:00:08.552323 | proton.vpn.connection.vpnconnector:168 | INFO | CONN:STATE_CHANGED | Disconnected (initial state)
2024-02-24T15:00:08.553048 | proton.vpn.app.gtk.app:57 | INFO | APP:PROCESS_START | self=<app.App object at 0x7a929c329c00 (proton+vpn+app+gtk+app+App at 0x63f7e4212960)>
2024-02-24T15:00:08.643254 | proton.vpn.app.gtk.widgets.main.tray_indicator:45 | INFO | AyanaAppIndicator3 not found: Namespace AyatanaAppIndicator3 not available
Traceback (most recent call last):
File "/usr/lib/python3.11/site-packages/secretstorage/util.py", line 48, in send_and_get_reply
raise DBusErrorResponse(resp_msg)
jeepney.wrappers.DBusErrorResponse: [org.freedesktop.DBus.Error.ServiceUnknown] ('The name is not activatable',)
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/lib/python3.11/site-packages/keyring/backends/SecretService.py", line 61, in get_preferred_collection
collection = secretstorage.get_default_collection(bus)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/secretstorage/collection.py", line 177, in get_default_collection
return Collection(connection)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/secretstorage/collection.py", line 45, in __init__
self._collection.get_property('Label')
File "/usr/lib/python3.11/site-packages/secretstorage/util.py", line 67, in get_property
(signature, value), = self.send_and_get_reply(msg)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/secretstorage/util.py", line 58, in send_and_get_reply
raise SecretServiceNotAvailableException(data) from resp
secretstorage.exceptions.SecretServiceNotAvailableException: The name is not activatable
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3.11/site-packages/proton/keyring_linux/core/keyring_linux.py", line 99, in _is_backend_working
keyring_backend.get_password(
File "/usr/lib/python3.11/site-packages/keyring/backends/SecretService.py", line 78, in get_password
collection = self.get_preferred_collection()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/keyring/backends/SecretService.py", line 63, in get_preferred_collection
raise InitError("Failed to create the collection: %s." % e)
keyring.errors.InitError: Failed to create the collection: The name is not activatable.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3.11/site-packages/proton/vpn/app/gtk/app.py", line 94, in do_activate
self.tray_indicator = self._build_tray_indicator_if_possible(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/proton/vpn/app/gtk/app.py", line 195, in _build_tray_indicator_if_possible
return TrayIndicator(controller, main_window)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/proton/vpn/app/gtk/widgets/main/tray_indicator.py", line 118, in __init__
self._menu = self._build_menu()
^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/proton/vpn/app/gtk/widgets/main/tray_indicator.py", line 221, in _build_menu
if self._controller.user_logged_in:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/proton/vpn/app/gtk/controller.py", line 129, in user_logged_in
return self._api.is_user_logged_in()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/proton/vpn/core/api.py", line 89, in is_user_logged_in
return self._session_holder.session.logged_in
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/proton/vpn/core/session.py", line 71, in session
self._session = self._proton_sso.get_default_session(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/proton/sso/sso.py", line 192, in get_default_session
sessions = self.sessions
^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/proton/sso/sso.py", line 130, in sessions
keyring = self._keyring
^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/proton/sso/sso.py", line 111, in _keyring
self.__keyring_backend = Keyring.get_from_factory()
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/proton/keyring/_base.py", line 49, in get_from_factory
keyring_backend = Loader.get("keyring", class_name=backend)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/proton/loader/loader.py", line 105, in get
if entry.cls._validate():
^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/proton/keyring_linux/secretservice/secretservice_backend.py", line 40, in _validate
return cls._is_backend_working(SecretService.Keyring())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/proton/keyring_linux/core/keyring_linux.py", line 108, in _is_backend_working
logger.exception(f"Keyring \"{keyring_backend}\" error")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/keyring/backend.py", line 95, in __str__
keyring_class.__module__, keyring_class.__name__, keyring_class.priority
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/jaraco/classes/properties.py", line 201, in __get__
return self.fget.__get__(None, owner)()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/keyring/backends/SecretService.py", line 43, in priority
raise RuntimeError(
RuntimeError: The Secret Service daemon is neither running nor activatable through D-Bus
(protonvpn-app:2428): Gdk-CRITICAL **: 20:30:08.837: gdk_window_thaw_toplevel_updates: assertion 'window->update_and_descendants_freeze_count > 0' failed
after 2 minute, exactly 120 sec it works fine without error
We are happy to answer your questions about the code or discuss technical ideas.
Please complete the following checklist (by adding [x]):
Issue: I casually surf the web and suddenly my internet stops working and everything stops, now I need to disconnect and exactly afer 2 minute i need to connect, if i connect within 2 minute like 1:30 then it will stuck in asking password (same as #4 and #8 ). When i try to get log on networkmanager i get these logs
Feb 20 08:39:01 ArchBeast nm-openvpn[3325853]: TUN/TAP device proton0 opened
Feb 20 08:39:01 ArchBeast nm-openvpn[3325853]: /usr/lib/nm-openvpn-service-openvpn-helper --debug 0 3325677 --bus-name org.freedesktop.NetworkManager.openvpn.Connection_140 --tun -- proton0 1500 0 10.96.0.29 255.255.0.0 init
Feb 20 08:39:01 ArchBeast NetworkManager[579]: <info> [1708398541.0827] manager: (proton0): new Tun device (/org/freedesktop/NetworkManager/Devices/88)
Feb 20 08:39:01 ArchBeast nm-openvpn[3325853]: Initialization Sequence Completed
Feb 20 08:39:10 ArchBeast NetworkManager[579]: <warn> [1708398550.0439] platform-linux: do-add-ip4-address[106: 10.96.0.20/16]: failure 19 (No such device - ipv4: Device not found)
Feb 20 08:39:10 ArchBeast NetworkManager[579]: <warn> [1708398550.0441] l3cfg[01e4c419cb239cb3,ifindex=106]: unable to configure IPv4 route: type unicast 10.96.0.0/16 dev 106 metric 50 mss 0 rt-src rt-kernel scope link pref-src 10.96.0.20
Feb 20 08:39:10 ArchBeast NetworkManager[579]: <warn> [1708398550.0442] platform-linux: do-add-ip6-address[106: fd54:20a4:d33b:b10c:c1f:0:60:14]: failure 19 (No such device - ipv6: Unable to find the interface)
Feb 20 09:00:16 ArchBeast NetworkManager[579]: <info> [1708399816.6190] dhcp4 (wlp2s0): state changed new lease, address=192.168.1.7
Feb 20 09:36:03 ArchBeast nm-openvpn[3325853]: AUTH: Received control message: AUTH_FAILED
Feb 20 09:36:03 ArchBeast nm-openvpn[3325853]: SIGUSR1[soft,auth-failure] received, process restarting
After Initialization Sequence Completed
it randomly show auth failed and when try to reconenct (received, process restarting
) it just stuck on loop for asking passwords, and in logs it just try to reconnect and exactly after 2 minute mean exactly after 120 seconds it connects and works.
This disconnection happnes anytime, like it might not happen for 5 hrs and sometimes it happned after 5 minute
We are happy to answer your questions about the code or discuss technical ideas.
Please complete the following checklist (by adding [x]):
Just wondering when we can gat beta application on arch linux? Like we dont even have a beta branch on github so Just asking.
We are happy to answer your questions about the code or discuss technical ideas.
Please complete the following checklist (by adding [x]):
Distro: Fedora Linux 40
DE: KDE Plasma 6
Kernel: 6.8.9-300.fc40.x86_64
When I start proton-vpn-gtk-app from the terminal, I get an error about killswitch. The output is as follows:
Traceback (most recent call last):
File "/usr/lib/python3.12/site-packages/proton/vpn/killswitch/interface/killswitch.py", line 57, in get
return Loader.get("killswitch", class_name=class_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/proton/loader/loader.py", line 113, in get
raise RuntimeError(f"Loader: couldn't find an acceptable implementation for {type_name}.")
RuntimeError: Loader: couldn't find an acceptable implementation for killswitch.
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/bin/protonvpn-app", line 33, in <module>
sys.exit(load_entry_point('proton-vpn-gtk-app==4.3.1', 'console_scripts', 'protonvpn-app')())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/proton/vpn/app/gtk/__main__.py", line 34, in main
controller = Controller.get(executor)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/proton/vpn/app/gtk/controller.py", line 59, in get
executor.submit(controller.initialize_vpn_connector).result()
File "/usr/lib64/python3.12/concurrent/futures/_base.py", line 456, in result
return self.__get_result()
^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.12/concurrent/futures/_base.py", line 401, in __get_result
raise self._exception
File "/usr/lib/python3.12/site-packages/proton/vpn/app/gtk/controller.py", line 99, in initialize_vpn_connector
self._connector = await self._api.get_vpn_connector()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/proton/vpn/core/api.py", line 56, in get_vpn_connector
vpn_connector = await VPNConnector.get_instance(settings)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/proton/vpn/connection/vpnconnector.py", line 64, in get_instance
cls._instance = VPNConnector(settings, kill_switch=kill_switch)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/proton/vpn/connection/vpnconnector.py", line 86, in __init__
self._kill_switch = kill_switch or KillSwitch.get()()
^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/proton/vpn/killswitch/interface/killswitch.py", line 59, in get
raise MissingKillSwitchBackendDetails(excp) from excp
proton.vpn.killswitch.interface.exceptions.MissingKillSwitchBackendDetails: Loader: couldn't find an acceptable implementation for killswitch.
We are happy to answer your questions about the code or discuss technical ideas.
Please complete the following checklist (by adding [x]):
The README states:
Virtual environment
If you didn't do it yet, to be able to pip install Proton VPN components you'll need to set up our internal Python package registry. You can do so running the command below, after replacing
{GITLAB_TOKEN
} with your personal access token with the scope set toapi
.pip config set global.index-url https://__token__:{GITLAB_TOKEN}@{GITLAB_INSTANCE}/api/v4/groups/{GROUP_ID}/-/packages/pypi/simple
This makes the job of using running the app from the source code extremely difficult. Moreover, the README also doesn't mention what GitLab instance to use, which makes me think that the instance being used is https://gitlab.com/, a 3rd party service.
I bring this up as I would like an easy way to build/run the app from source without needing to clone a bunch of other repositories or authenticate with GitLab (which doesn't really make sense since the source is on GitHub and pip
can install packages from git)
We are happy to answer your questions about the code or discuss technical ideas.
Please complete the following checklist (by adding [x]):
Will this app be updated?
what about the legacy https://github.com/ProtonVPN/linux-cli and https://github.com/ProtonVPN/linux-app ?
We are happy to answer your questions about the code or discuss technical ideas.
Please complete the following checklist (by adding [x]):
Please provide a way to use the official app package in case of unsupported linux distributions.
This is especially important now that you have deprecated protonvpn-cli and it no longer works at all Rafficer/linux-cli-community#365
Maybe you can provide instructions on how to install it into virtual env with pip? Or even you can create official releases with AppImage or Flatpak which wok on any distro?
Thanks
We are happy to answer your questions about the code or discuss technical ideas.
Please complete the following checklist (by adding [x]):
When executing protonvpn-app
after updating:
(protonvpn-app:1227797): Gdk-WARNING **: 14:49:26.033: Failed to read portal settings: GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod: No such interface “org.freedesktop.portal.Settings” on object at path /org/freedesktop/portal/desktop
Traceback (most recent call last):
File "/usr/bin/protonvpn-app", line 33, in <module>
sys.exit(load_entry_point('proton-vpn-gtk-app==4.3.0', 'console_scripts', 'protonvpn-app')())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/proton/vpn/app/gtk/__main__.py", line 34, in main
controller = Controller.get(executor)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/proton/vpn/app/gtk/controller.py", line 57, in get
executor.submit(controller.initialize_vpn_connector).result()
File "/usr/lib/python3.11/concurrent/futures/_base.py", line 456, in result
return self.__get_result()
^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/concurrent/futures/_base.py", line 401, in __get_result
raise self._exception
File "/usr/lib/python3/dist-packages/proton/vpn/app/gtk/controller.py", line 97, in initialize_vpn_connector
self._connector = await self._api.get_vpn_connector()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/proton/vpn/core/api.py", line 55, in get_vpn_connector
settings = await self.load_settings()
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/proton/vpn/core/api.py", line 65, in load_settings
if self._session_holder.session.logged_in:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/proton/vpn/core/session.py", line 73, in session
self._session = self._proton_sso.get_default_session(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/proton/sso/sso.py", line 192, in get_default_session
sessions = self.sessions
^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/proton/sso/sso.py", line 133, in sessions
keyring_index = keyring[self.__keyring_index_name()]
~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/proton/keyring/_base.py", line 65, in __getitem__
return self._get_item(key)
^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/proton/keyring_linux/secretservice/secretservice_backend.py", line 57, in _get_item
self.KEYRING_SERVICE,
^^^^^^^^^^^^^^^^^^^^
AttributeError: 'KeyringBackendLinuxSecretService' object has no attribute 'KEYRING_SERVICE'
Proton,
I'm a paid user and I have already opened a report, but no one can solve it yet.
I have facing A LOT and ANNOYING connection drops!
Looking at logs, I see many of this:
2024-03-17T14:19:56.971101 | proton.vpn.connection.vpnconnector:238 | INFO | CONN:STATE_CHANGED | Error 2024-03-17T14:19:56.971371 | proton.vpn.connection.states:334 | WARNING | Reached connection error state: Timeout (None) 2024-03-17T14:19:56.972559 | proton.vpn.app.gtk.services.reconnector.reconnector:191 | INFO | VPN connection drop was detected. 2024-03-17T14:19:56.972796 | proton.vpn.app.gtk.services.reconnector.reconnector:133 | INFO | Reconnection attempt #1 scheduled in 1.96 seconds. 2024-03-17T14:19:58.930200 | proton.vpn.app.gtk.services.reconnector.reconnector:207 | INFO | Reconnecting (attempt #1)... 2024-03-17T14:19:58.932429 | proton.vpn.core.connection:156 | INFO | CONN.CONNECT:START | Server: <omitted> / Protocol: openvpn-udp / Ports: [80, 51820, 4569, 1194, 5060] / Backend: linuxnetworkmanager 2024-03-17T14:19:58.933446 | proton.vpn.connection.vpnconnector:238 | INFO | CONN:STATE_CHANGED | Connecting 2024-03-17T14:20:04.443903 | proton.vpn.backend.linux.networkmanager.core.networkmanager:86 | INFO | VPN server NOT reachable.
After getting this connection drop, I have to reconnect manually.
We are happy to answer your questions about the code or discuss technical ideas.
Please complete the following checklist (by adding [x]):
Will you add an OpenRC and others (dinit, runit) support?
We are happy to answer your questions about the code or discuss technical ideas.
Please complete the following checklist (by adding [x]):
I tried to follow instructions at https://github.com/ProtonVPN/proton-vpn-gtk-app#proton-package-registry but I am unable to reach
https://gitlab.protontech.ch/help/user/profile/personal_access_tokens.md
(seems to be a broken link)
I cannot reach https://gitlab.protontech.ch/
Has this link changed?
The reason I am trying to build the VPN GTK app is because it seems protonvpn from AUR is outdated. I cannot find a tarball, deb, rpm package to install the VPN.
Honestly, it's a pain to deal with installation issues and your web page https://protonvpn.com/download-linux is not user friendly at all. It only takes you from on link to another and goes back in circles. The AUR package is outdated right now, as far as I understand.
At least provide a correct way to install the programs from source. I'm a paying subscriber and this is making me regret my choice.
We are happy to answer your questions about the code or discuss technical ideas.
Please complete the following checklist (by adding [x]):
The following packages have unmet dependencies:
python3-proton-vpn-api-core : Breaks: proton-vpn-gtk-app (< 4.1.2) but 4.1.0 is to be installed
E: Unable to correct problems, you have held broken packages.
Please complete the following checklist (by adding [x]):
I'm sorry if this bothers you that this issue is a feature request (or if the feature was already discussed here), but I feel this is the only way i can get heard!
the V4 linux app is incomplete.
With the V3 app, i could:
use an autostart bash script that connects me to the fastest p2p server quick connect to the fastest p2p server
enable a permanent killswitch
If you can at least add a p2p/stream toggle for auto connect, v4 will officially be a full fledged replacement for v3 when this is done.
edited! 👍
We are happy to answer your questions about the code or discuss technical ideas.
Please complete the following checklist (by adding [x]):
Following an update to proton vpn libraries on 27th nov, today the app disappeared from the "Pop!_Shop" app center and dock
I uninstalled using instructions on your website help and tried to reinstall but I am getting this message:
The following packages have unmet dependencies.
python3-proton-vpn-session : Breaks: python3-proton-vpn-api-core (< 0.20.2) but 0.20.1 is to be installed
E: Unable to correct problems, you have held broken packages.
We are happy to answer your questions about the code or discuss technical ideas.
Please complete the following checklist (by adding [x]):
❯ protonvpn-app
2024-01-27T04:49:31.903948 | proton.vpn.connection.vpnconnector:168 | INFO | CONN:STATE_CHANGED | Disconnected (initial state)
2024-01-27T04:49:32.076491 | proton.vpn.session.session:92 | ERROR | Error deserializing VPN session.
Traceback (most recent call last):
File "/usr/lib/python3.12/site-packages/proton/vpn/session/servers/fetcher.py", line 107, in load_from_cache
cache = self._cache_file.load()
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/proton/vpn/session/cache.py", line 57, in load
return CacheFile.from_path(self.file_path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/proton/vpn/session/cache.py", line 69, in from_path
with open(file_path, "r", encoding="utf-8") as file:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: '/home/elmo/.cache/Proton/VPN/serverlist.json'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/lib/python3.12/site-packages/proton/vpn/session/session.py", line 89, in __setstate__
self._server_list = self._fetcher.load_server_list_from_cache()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/proton/vpn/session/fetcher.py", line 96, in load_server_list_from_cache
return self._server_list_fetcher.load_from_cache()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/proton/vpn/session/servers/fetcher.py", line 109, in load_from_cache
raise ServerListDecodeError("Cached server list was not found") from error
proton.vpn.session.exceptions.ServerListDecodeError: Cached server list was not found
Traceback (most recent call last):
File "/usr/bin/protonvpn-app", line 33, in <module>
sys.exit(load_entry_point('proton-vpn-gtk-app==4.1.8', 'console_scripts', 'protonvpn-app')())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/proton/vpn/app/gtk/__main__.py", line 34, in main
controller = Controller.get(executor)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/proton/vpn/app/gtk/controller.py", line 55, in get
executor.submit(controller.initialize_vpn_connector).result()
File "/usr/lib64/python3.12/concurrent/futures/_base.py", line 456, in result
return self.__get_result()
^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.12/concurrent/futures/_base.py", line 401, in __get_result
raise self._exception
File "/usr/lib/python3.12/site-packages/proton/vpn/app/gtk/controller.py", line 101, in initialize_vpn_connector
self._reconnector.enable()
File "/usr/lib/python3.12/site-packages/proton/vpn/app/gtk/services/reconnector/reconnector.py", line 91, in enable
raise RuntimeError("VPN data refresher is not ready.")
RuntimeError: VPN data refresher is not ready.
Hi,
I've submitted ProtonVPN/python-proton-keyring-linux#1 over a month ago, and was told by @calexandru2018 that it was being discussed internally. Can I have some kind of update on this, even if it's been declined? This has been a very frustrating bug that impacts all my computers constantly, and likely causes issues with others as well. Again, any response would be fine, just please tell me some update.
We are happy to answer your questions about the code or discuss technical ideas.
Please complete the following checklist (by adding [x]):
There's an issue when Gnome keyring is locked and it can be summarized as this:
I tried to trace the problem, but with so many callbacks and async everywhere it is hard.
There's one solution that works, but it might not be the best.
Here is my solution:
start
methodAs the credentials and other data are stored in the keyring, ideally, in every new connection it should be checked if the keyring is locked or not. The user can manually lock it or another application can lock it.
What I have done in the code is:
diff --git a/proton/vpn/backend/linux/networkmanager/core/networkmanager.py b/proton/vpn/backend/linux/networkmanager/core/networkmanager.py
index 8fd7e55..a5b4149 100644
--- a/proton/vpn/backend/linux/networkmanager/core/networkmanager.py
+++ b/proton/vpn/backend/linux/networkmanager/core/networkmanager.py
@@ -116,6 +116,13 @@ class LinuxNetworkManager(VPNConnection):
self._notify_subscribers(events.Disconnected(EventContext(connection=self)))
return
+ try:
+ import keyring
+ k = keyring.get_keyring()
+ k.get_credential('ProtonVPN', 'ProtonUser')
+ except:
+ pass
+
try:
future_vpn_connection = self.nm_client.start_connection_async(connection)
vpn_connection = await loop.run_in_executor(
This solves my problem, but if this would be a valid solution, possibly it should be a call to Dbus.
Maybe the issue is somewhere else, it feels like a race condition, the VPN connection should not start while I type the keyring password to unlock the VPN credentials.
With some help, I could possibly patch this properly.
Is there any chance to support VNC sessions in proton-vpn-gtk-app
? Currently, I'm starting VNC session with KDE (but the Desktop Environment is not important) and when I'm starting the app I'm getting:
2024-02-16T08:02:09.514193 | proton.vpn.connection.vpnconnector:168 | INFO | CONN:STATE_CHANGED | Disconnected (initial state)
2024-02-16T08:02:09.514507 | proton.vpn.app.gtk.app:57 | INFO | APP:PROCESS_START | self=<app.App object at 0xffff84484c40 (proton+vpn+app+gtk+app+App at 0xaaab2458dad0)>
2024-02-16T08:02:09.561668 | proton.vpn.app.gtk.widgets.main.tray_indicator:45 | INFO | AyanaAppIndicator3 not found: Namespace AyatanaAppIndicator3 not available
2024-02-16T08:02:09.700696 | dbus.proxies:407 | ERROR | Introspect error on :1.10:/org/freedesktop/login1/seat/auto: dbus.exceptions.DBusException: org.freedesktop.DBus.Error.UnknownObject: Unknown object '/org/freedesktop/login1/seat/auto'.
Traceback (most recent call last):
File "/usr/lib/python3.12/site-packages/proton/vpn/app/gtk/widgets/vpn/vpn_widget.py", line 139, in _on_vpn_data_ready
self.display(self._controller.user_tier, server_list)
File "/usr/lib/python3.12/site-packages/proton/vpn/app/gtk/widgets/vpn/vpn_widget.py", line 164, in display
self._controller.reconnector.enable()
File "/usr/lib/python3.12/site-packages/proton/vpn/app/gtk/services/reconnector/reconnector.py", line 95, in enable
self._session_monitor.enable()
File "/usr/lib/python3.12/site-packages/proton/vpn/app/gtk/services/reconnector/session_monitor.py", line 61, in enable
self._setup()
File "/usr/lib/python3.12/site-packages/proton/vpn/app/gtk/services/reconnector/session_monitor.py", line 102, in _setup
seat_properties = seat_auto_properties_proxy.GetAll(SEAT_INTERFACE)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.12/site-packages/dbus/proxies.py", line 72, in __call__
return self._proxy_method(*args, **keywords)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.12/site-packages/dbus/proxies.py", line 141, in __call__
return self._connection.call_blocking(self._named_service,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.12/site-packages/dbus/connection.py", line 634, in call_blocking
reply_message = self.send_message_with_reply_and_block(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.UnknownObject: Unknown object '/org/freedesktop/login1/seat/auto'.
2024-02-16T08:02:09.716784 | proton.vpn.app.gtk.services.refresher.vpn_data_refresher:148 | INFO | APP.VPN_DATA_REFRESHER:ENABLE | VPN data refresher service enabled.
2024-02-16T08:02:09.716858 | proton.vpn.app.gtk.services.refresher.client_config_refresher:68 | INFO | Client config refresher enabled.
2024-02-16T08:02:09.716919 | proton.vpn.app.gtk.services.refresher.client_config_refresher:107 | INFO | Next client config refresh scheduled in 2:39:28.999014
2024-02-16T08:02:09.716952 | proton.vpn.app.gtk.services.refresher.server_list_refresher:74 | INFO | Server list refresher enabled.
2024-02-16T08:02:09.717739 | proton.vpn.session.utils:25 | INFO | API:REQUEST | '/vpn/loads'
2024-02-16T08:02:09.754349 | proton.vpn.app.gtk.services.reconnector.reconnector:176 | INFO | Network connectivity was detected.
2024-02-16T08:02:10.692619 | proton.vpn.session.utils:29 | INFO | API:RESPONSE | '/vpn/loads'
2024-02-16T08:02:10.789967 | proton.vpn.app.gtk.services.refresher.server_list_refresher:126 | INFO | Next server list refresh scheduled in 0:17:36.605211
It's because VNC session doesn't allocate any seat and app hangs on:
I've installed packages in the following versions:
~ rpm -qa | grep -i proton
protonvpn-stable-release-1.0.1-2.noarch
python3-proton-core-0.1.16-1.fc39.noarch
python3-proton-vpn-logger-0.2.1-1.fc39.noarch
python3-proton-vpn-killswitch-0.2.0-1.fc39.noarch
python3-proton-vpn-connection-0.11.3-1.fc39.noarch
python3-proton-vpn-network-manager-0.3.3-1.fc39.noarch
python3-proton-vpn-network-manager-openvpn-0.0.4-1.fc39.noarch
python3-proton-vpn-killswitch-network-manager-0.2.0-1.fc39.noarch
python3-proton-vpn-session-0.6.5-1.fc39.noarch
python3-proton-vpn-api-core-0.20.3-1.fc39.noarch
proton-vpn-gtk-app-4.1.10-1.fc39.noarch
python3-proton-keyring-linux-0.0.1-1.fc39.noarch
python3-proton-keyring-linux-secretservice-0.0.1-1.fc39.noarch
proton-vpn-gnome-desktop-0.2.0-1.fc39.noarch
protonvpn-cli-2.2.11-9.fc39.noarch
Output from loginctl
command:
~ loginctl
SESSION UID USER SEAT TTY STATE IDLE SINCE
c1 1000 XXX n/a closing no
1 sessions listed.
protonvpn-cli
works, but it would be nice to use gtk-app on headless stations only with VNC session started.
We are happy to answer your questions about the code or discuss technical ideas.
Please complete the following checklist (by adding [x]):
Alot of apps on flathub are now being verified by their developers since Flathub introduces verification. ProtonVPN aren't verified. Why isn't it?
We are happy to answer your questions about the code or discuss technical ideas.
Please complete the following checklist (by adding [x]):
Step to reproduce:
Expected result:
The app should start with no problem
Actual result:
The app failed to start.
The reason is that when the ProtonVPN process was killed unexpectedly, here is no chance for it to clean up created NetworkManager connections for killswitch. Next time when you start ProtonVPN, it fails to recreate it.
2024-03-24T12:44:22.890956 | proton.vpn.connection.vpnconnector:238 | INFO | CONN:STATE_CHANGED | Disconnected (initial state)
Traceback (most recent call last):
File "/usr/bin/protonvpn-app", line 33, in <module>
sys.exit(load_entry_point('proton-vpn-gtk-app==4.2.0', 'console_scripts', 'protonvpn-app')())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/proton/vpn/app/gtk/__main__.py", line 34, in main
controller = Controller.get(executor)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/proton/vpn/app/gtk/controller.py", line 56, in get
executor.submit(controller.initialize_vpn_connector).result()
File "/usr/lib64/python3.11/concurrent/futures/_base.py", line 456, in result
return self.__get_result()
^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.11/concurrent/futures/_base.py", line 401, in __get_result
raise self._exception
File "/usr/lib/python3.11/site-packages/proton/vpn/app/gtk/controller.py", line 89, in initialize_vpn_connector
self._connector = await self._api.get_vpn_connector()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/proton/vpn/core/api.py", line 54, in get_vpn_connector
vpn_connector = await VPNConnector.get_instance(settings)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/proton/vpn/connection/vpnconnector.py", line 66, in get_instance
await cls._instance.initialize_state(initial_state)
File "/usr/lib/python3.11/site-packages/proton/vpn/connection/vpnconnector.py", line 149, in initialize_state
await self._update_state(state)
File "/usr/lib/python3.11/site-packages/proton/vpn/connection/vpnconnector.py", line 250, in _update_state
new_event = await state_tasks
^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/proton/vpn/connection/states.py", line 176, in run_tasks
await self.context.kill_switch.disable()
File "/usr/lib/python3.11/site-packages/proton/vpn/killswitch/backend/linux/networkmanager/nmkillswitch.py", line 77, in disable
await self._ks_handler.remove_full_killswitch_connection()
File "/usr/lib/python3.11/site-packages/proton/vpn/killswitch/backend/linux/networkmanager/killswitch_connection_handler.py", line 202, in remove_full_killswitch_connection
await self._remove_connection(_get_connection_id(permanent=False))
File "/usr/lib/python3.11/site-packages/proton/vpn/killswitch/backend/linux/networkmanager/killswitch_connection_handler.py", line 228, in _remove_connection
await _wrap_future(self.nm_client.remove_connection_async(connection))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/proton/vpn/killswitch/backend/linux/networkmanager/nmclient.py", line 230, in remove_connection_async
self._run_on_glib_loop_thread(_remove_connection_async).result()
File "/usr/lib64/python3.11/concurrent/futures/_base.py", line 456, in result
return self.__get_result()
^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.11/concurrent/futures/_base.py", line 401, in __get_result
raise self._exception
File "/usr/lib/python3.11/site-packages/proton/vpn/killswitch/backend/linux/networkmanager/nmclient.py", line 118, in wrapper
future.set_result(function(*args, **kwargs))
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/proton/vpn/killswitch/backend/linux/networkmanager/nmclient.py", line 217, in _remove_connection_async
handler_id = device.connect("state-changed", _on_interface_state_changed)
^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'connect'
proton-vpn-gtk-app/rpmbuild/SPECS/package.spec
Lines 38 to 41 in 713324e
We are happy to answer your questions about the code or discuss technical ideas.
Please complete the following checklist (by adding [x]):
I am trying to login to my server but not working, it is showing authentication denied
Things I have tried
When i manually removed proton then their was a problem with cache, with was fixed by #25 but took awfully long time on arch linux.
Please use the system keyring such as Kwallet or Gnome keyring. It is annoying the app always ask for password on rebooting the system, I login to the app everytime.
This was never a problem in the old app.
We are happy to answer your questions about the code or discuss technical ideas.
Please complete the following checklist (by adding [x]):
Hope this helps those struggling. I want to believe that Proton team will add an option to start apps into system tray at some point. Meanwhile this is my solution.
I am using both Proton VPN & Mail Bridge on Ubuntu with Gnome. In my case these are flatpaks but I don't think that matters. Here's what I ended up load both apps minimized to system tray. Just add this script to your startup apps.
proton-startup.sh
#!/bin/bash
# Proton VPN
gtk-launch com.protonvpn.www.desktop </dev/null &>/dev/null &
xdotool search --sync --name "Proton VPN" windowactivate
xdotool key --clearmodifiers --delay 500 alt+F4
# Proton Mail Bridge
gtk-launch ch.protonmail.protonmail-bridge.desktop </dev/null &>/dev/null &
xdotool search --sync --name "Proton Mail Bridge" windowactivate
xdotool key --clearmodifiers --delay 500 alt+F4
We are happy to answer your questions about the code or discuss technical ideas.
Please complete the following checklist (by adding [x]):
I have contacted the support & posted on reddit as well. The desktop client is not running on kali 2023.4 kde plasma
. I have used it in the past on kali for several years but recently I'm trying to install on my new machine & the gtk client is not logging in. When I enter my creds I see a notification in my phone about a new login but then it's stuck in the login screen.
Here is the reddit issue where I have put my logs
& also I have emailed the support with logs as well https://www.reddit.com/r/ProtonVPN/comments/18q295y/desktop_client_stuck_at_login_loop_on_kali_linux/
We are happy to answer your questions about the code or discuss technical ideas.
Please complete the following checklist (by adding [x]):
I have installed proton-vpn-gtk-app and it was not connecting to vpn, saying auth denied some thing like that, then i uninstalled it completly, removed every file and folder it created. Reinstalled it and it is showing this error
2024-02-04T02:01:34.907074 | proton.vpn.connection.vpnconnector:168 | INFO | CONN:STATE_CHANGED | Disconnected (initial state)
2024-02-04T02:01:35.107865 | proton.vpn.session.session:92 | ERROR | Error deserializing VPN session.
Traceback (most recent call last):
File "/usr/lib/python3.11/site-packages/proton/vpn/session/servers/fetcher.py", line 107, in load_from_cache
cache = self._cache_file.load()
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/proton/vpn/session/cache.py", line 57, in load
return CacheFile.from_path(self.file_path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/proton/vpn/session/cache.py", line 69, in from_path
with open(file_path, "r", encoding="utf-8") as file:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: '/home/ishank/.cache/Proton/VPN/serverlist.json'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/lib/python3.11/site-packages/proton/vpn/session/session.py", line 89, in __setstate__
self._server_list = self._fetcher.load_server_list_from_cache()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/proton/vpn/session/fetcher.py", line 96, in load_server_list_from_cache
return self._server_list_fetcher.load_from_cache()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/proton/vpn/session/servers/fetcher.py", line 109, in load_from_cache
raise ServerListDecodeError("Cached server list was not found") from error
proton.vpn.session.exceptions.ServerListDecodeError: Cached server list was not found
I tried restarting my pc but nothing worked
Hi @natanjunges, don't you have to call protonvpn-cli login first? Also, how do you specify the password as it isn't an argument to the command?
Hey @toxpal
So to answer to some of your questions:
- It is planned, but until then you could use something that linux already offers out-of-the box, a .service configuration within
--user
space. Also not sure by what you mean about the killswitch, could you please provide more details ?How exactly would one go about doing this? I currently have Protonvpn configured to start on boot using Manjaro's Autostart feature, however the VPN will not automatically turn on, and must be activated manually. Is there a way to auto-activate the connection in addition to simply auto-opening the application? If not, is this feature in the works?
I created a systemd service in user space, as @calexandru2018 mentioned. It works quite well, it waits for network-online.target
(it needs NetworkManager to be fully initialized), connects automatically, opens the GUI and disconnects automatically on logout. It also restarts itself in case it fails to start.
[Unit]
Description=ProtonVPN autostart
[Service]
Type=oneshot
RemainAfterExit=yes
# Waits until it is online. It is required because system targets cannot be used in user services.
ExecStartPre=sh -c "until systemctl is-active network-online.target; do sleep 1; done"
ExecStart=protonvpn-cli c -f
ExecStartPost=-sh -c "protonvpn &"
TimeoutStartSec=30
ExecStop=protonvpn-cli d
Restart=on-failure
[Install]
WantedBy=default.target
To use it, just save it in ~/.config/systemd/user/protonvpn-autostart.service
, reload the systemd daemon with systemctl --user daemon-reload
and enable it with systemctl --user enable protonvpn-autostart
.
I could not get it working reliably with Kill Switch enabled at first, but the solution from ProtonVPN/linux-cli#44 (comment) seems to have worked. Just insert these two lines after RemainAfterExit=yes
:
ExecStartPre=-protonvpn-cli ks --off
ExecStartPre=-protonvpn-cli ks --on
Then reload the systemd daemon with systemctl --user daemon-reload
.
Originally posted by @natanjunges in ProtonVPN/linux-app#4 (comment)
We are happy to answer your questions about the code or discuss technical ideas.
Please complete the following checklist (by adding [x]):
System: Fedora 39, KDE Plasma 5.27.11, Wayland, Kernel 6.8.8-200 (should not be relevant but maybe there might be a difference on other systems)
The ProtonVPN GTK App (from Proton repos) is on activation (on click if opened on desktop but out of focus, minimized in taskbar, or if minimized in tray) unresponsive and greyed (sometimes even whited) out. This has been the case across the last updates for the GTK app. The App works fine otherwise, just it takes some time to become fully responsive and to be displayed properly.
Other than that, thank you very much for making the GTK app, it works great otherwise.
That is basically all.
We are happy to answer your questions about the code or discuss technical ideas.
Please complete the following checklist (by adding [x]):
Once detected proton main site API blocked. should trying to connect stealth protocol first. on the most network restrictive environment. other VPN protocol almost unable to use.
Might you know, users can not wait connect for long time, right?
The app wants to create a new keyring called "Default" each time I start my computer. In addition, the app never saves my login after it closes.
These issues happen to me on clean installs of:
I don't know if you all didn't bother testing the application or i'm just really unlucky but please just store the information for the application somewhere in the home folder. Windscribe does this and as a result it works perfectly on every distribution and desktop environment. These keyrings have had random issues like this reported constantly over the last 10 years and the solution that works 100% of the time is to simply not use them.
Hi,
my OS: Linux Fedora 38
Previously I had Fedora 36, I upgraded to 37 and 38. During the upgrade I had to disable/remove the protonvpn repo
Then I tried to (re-)install protonvpn following this guide https://protonvpn.com/support/official-linux-vpn-fedora/
After downloading the RPM, I do:
sudo dnf install ./protonvpn-stable-release-1.0.1-2.noarch.rpm
I'm getting this error:
sudo dnf install ./protonvpn-stable-release-1.0.1-2.noarch.rpm
Last metadata expiration check: 0:19:09 ago on Sun 19 Nov 2023 04:12:08 PM CET.
Dependencies resolved.
======================================================================================================================================================================================================
Package Architecture Version Repository Size
======================================================================================================================================================================================================
Installing:
protonvpn-stable-release noarch 1.0.1-2 @commandline 7.1 k
Transaction Summary
======================================================================================================================================================================================================
Install 1 Package
Total size: 7.1 k
Installed size: 280
Is this ok [y/N]: y
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
RPM: error: Verifying a signature using certificate A88441BD4864F95BEE08E63A71EB474019940E11 (Proton Technologies AG <[email protected]>):
RPM: 1. Certificiate 71EB474019940E11 invalid: certificate is not alive
RPM: because: The primary key is not live
RPM: because: Expired on 2022-10-28T13:52:11Z
RPM: 2. Key 71EB474019940E11 invalid: key is not alive
RPM: because: The primary key is not live
RPM: because: Expired on 2022-10-28T13:52:11Z
Error: Transaction test error:
package protonvpn-stable-release-1.0.1-2.noarch does not verify: Header V4 RSA/SHA256 Signature, key ID 19940e11: NOTTRUSTED
I upgraded my system to Fedora 39, same issue when I try installing the RPM. So I have no clue what to do to make this work. Ideas? Thank you.
Please complete the following checklist (by adding [x]):
We are happy to answer your questions about the code or discuss technical ideas.
Please complete the following checklist (by adding [x]):
What is the status of Wireguard implementation and where are the roadblocks? If there is a timeline page for it, I have not found it.
My main concern is that the GTK app for ProtonVPN already utilizes the OpenVPN structure built into Linux. Why is the Wireguard implementation within Linux not being used as well?
I just want to know how I can potentially contribute.
Related to
ProtonVPN/linux-cli#108
We are happy to answer your questions about the code or discuss technical ideas.
Please complete the following checklist (by adding [x]):
Since the latest update, the app is not working on manjaro ( it was working fine until now )
I'm getting a "ModuleNotFoundError" when I try to launch it.
Any idea on what the issue is?
Complete logs from installing all the packages needed ( yay
did all of it )
~ took 54s
❯ protonvpn-app
Traceback (most recent call last):
File "/usr/bin/protonvpn-app", line 33, in <module>
sys.exit(load_entry_point('proton-vpn-gtk-app==4.3.0', 'console_scripts', 'protonvpn-app')())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/bin/protonvpn-app", line 25, in importlib_load_entry_point
return next(matches).load()
^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/importlib/metadata/__init__.py", line 205, in load
module = import_module(match.group('module'))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/importlib/__init__.py", line 90, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
File "<frozen importlib._bootstrap>", line 1310, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 995, in exec_module
File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
File "/usr/lib/python3.12/site-packages/proton/vpn/app/gtk/__init__.py", line 33, in <module>
from proton.vpn import logging # pylint: disable=C0413 # noqa: E402
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/proton/vpn/logging/__init__.py", line 26, in <module>
from proton.utils.environment import VPNExecutionEnvironment
ModuleNotFoundError: No module named 'proton.utils'
If killswitch is enabled, closing the app doesn't prevent non-VPN connections. The old app had this feature.
We are happy to answer your questions about the code or discuss technical ideas.
Please complete the following checklist (by adding [x]):
Why do I get this popup?
Nothing of my proton credentials seem to satisfy this
We are happy to answer your questions about the code or discuss technical ideas.
Please complete the following checklist (by adding [x]):
Hello, Proton VPN team:
Presently, if the primary ProtonVPN API endpoint is inaccessible due to blocking, the application attempts to connect through alternative available endpoints.
However, upon examining the backup endpoint, a critical issue emerges: it solely utilizes port 443 for HTTPS connections and lacks additional ports.
Consequently, in restricted environments, users may encounter difficulties in establishing a successful connection to the API server, significantly impairing the functionality of the application.
To address this concern, it's imperative to include a non-standard HTTPS port for the backup endpoint.
Thanks.
These are either blank, contain just the ProtonVPN login password, or contain that password and some VPN configurations. This is on GNOME, so kde-wallet
cannot be causing the issue. Could it be caused because I also have keyrings named Default keyring
?
It seems very likely that the issue is that it fails to detect the keyring named Default
, and makes another one every single time the app is restarted. This means you have to login after every reboot
This is happening on all of my computers, some with KDE and some with GNOME, and probably caused #8
2023-12-11T08:54:18.151935 | proton.vpn.connection.vpnconnector:185 | INFO | CONN:STATE_CHANGED | Disconnected (initial state)
2023-12-11T08:54:25.085995 | proton.vpn.app.gtk.widgets.login.login_form:106 | INFO | UI.LOGIN:CLICK | Clicked on login
2023-12-11T08:54:25.096355 | proton.vpn.app.gtk.widgets.main.exception_handler:174 | CRITICAL | APP:CRASH | Unexpected error.
Traceback (most recent call last):
File "/usr/lib/python3.12/site-packages/proton/vpn/app/gtk/widgets/login/login_form.py", line 124, in _on_login_result
if result.authenticated:
^^^^^^^^^^^^^^^^^^^^
AttributeError: 'coroutine' object has no attribute 'authenticated'
OS: Void Linux
Python 3.12
We are happy to answer your questions about the code or discuss technical ideas.
Please complete the following checklist (by adding [x]):
As an AUR maintainer I'm using tags here, and they are being created removed randomly, can I rely on them or not?
Please complete the following checklist (by adding [x]):
OS: Ubuntu 23.10
Hardware: Raspberry Pi 5
Running as a system user
Checked permissions for .cache, correct
All optional features turned off
Reinstall tried
Tried running on newly created user
Stable (4.3.0) and Beta version tried
Different countries/servers tried
ProtonVPN becomes stuck in the 'connecting' state. If the application is closed, it will only open again after a restart.
Relevant logs:
2024-04-27T17:26:06.188771 | proton.vpn.session.session:92 | ERROR | Error deserializing VPN session.
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/proton/vpn/session/servers/fetcher.py", line 107, in load_from_cache
cache = self._cache_file.load()
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/proton/vpn/session/cache.py", line 57, in load
return CacheFile.from_path(self.file_path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/proton/vpn/session/cache.py", line 69, in from_path
with open(file_path, "r", encoding="utf-8") as file:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: '/home/seedbox/.cache/Proton/VPN/serverlist.json'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/proton/vpn/session/session.py", line 89, in setstate
self._server_list = self._fetcher.load_server_list_from_cache()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/proton/vpn/session/fetcher.py", line 96, in load_server_list_from_cache
return self._server_list_fetcher.load_from_cache()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/proton/vpn/session/servers/fetcher.py", line 109, in load_from_cache
raise ServerListDecodeError("Cached server list was not found") from error
proton.vpn.session.exceptions.ServerListDecodeError: Cached server list was not found
Originally reported by @sbeve72 in this AUR comment.
We are happy to answer your questions about the code or discuss technical ideas.
Please complete the following checklist (by adding [x]):
I have been facing this problem since yesterday and I have not found any solution to it, I tried all available methods and searched on many sites and I did not find a solution for it, please help
python3-proton-vpn-session : breaks: python3-proton-vpn-api-core (< 0.20.2) but 0.20.1 is to be installed
I try to install proton after pkg, and i got this problem
Debian 12
We are happy to answer your questions about the code or discuss technical ideas.
Please complete the following checklist (by adding [x]):
The tests fail to run if the session has no desktop environment, for example, over SSH or while building an RPM. On a graphical environment, I see that tests open windows.
Ideally, tests should be skipped if there's no desktop, it might be easier than rewriting tests to not require a desktop env.
tests/unit/widgets/headerbar/menu/settings/test_account_settings.py Fatal Python error: Segmentation fault
Thread 0x00007f0fd4e5b700 (most recent call first):
File "/usr/lib64/python3.10/selectors.py", line 469 in select
File "/usr/lib64/python3.10/asyncio/base_events.py", line 1871 in _run_once
File "/usr/lib64/python3.10/asyncio/base_events.py", line 603 in run_forever
File "/home/alexandre/workspace/alxd/proton-vpn-gtk-app/proton/vpn/app/gtk/utils/executor.py", line 89 in _run_asyncio_loop_forever
File "/usr/lib64/python3.10/threading.py", line 953 in run
File "/usr/lib64/python3.10/threading.py", line 1016 in _bootstrap_inner
File "/usr/lib64/python3.10/threading.py", line 973 in _bootstrap
Current thread 0x00007f0fe4013740 (most recent call first):
File "/home/alexandre/workspace/alxd/proton-vpn-gtk-app/venv/lib64/python3.10/site-packages/gi/overrides/__init__.py", line 313 in new_init
File "/home/alexandre/workspace/alxd/proton-vpn-gtk-app/proton/vpn/app/gtk/widgets/headerbar/menu/settings/common.py", line 37 in __init__
File "/home/alexandre/workspace/alxd/proton-vpn-gtk-app/proton/vpn/app/gtk/widgets/headerbar/menu/settings/account_settings.py", line 35 in __init__
File "/home/alexandre/workspace/alxd/proton-vpn-gtk-app/tests/unit/widgets/headerbar/menu/settings/test_account_settings.py", line 18 in test_account_settings_when_is_called_upon_building_ui_elements
File "/home/alexandre/workspace/alxd/proton-vpn-gtk-app/venv/lib/python3.10/site-packages/_pytest/python.py", line 195 in pytest_pyfunc_call
File "/home/alexandre/workspace/alxd/proton-vpn-gtk-app/venv/lib/python3.10/site-packages/pluggy/_callers.py", line 102 in _multicall
File "/home/alexandre/workspace/alxd/proton-vpn-gtk-app/venv/lib/python3.10/site-packages/pluggy/_manager.py", line 119 in _hookexec
File "/home/alexandre/workspace/alxd/proton-vpn-gtk-app/venv/lib/python3.10/site-packages/pluggy/_hooks.py", line 501 in __call__
File "/home/alexandre/workspace/alxd/proton-vpn-gtk-app/venv/lib/python3.10/site-packages/_pytest/python.py", line 1772 in runtest
File "/home/alexandre/workspace/alxd/proton-vpn-gtk-app/venv/lib/python3.10/site-packages/_pytest/runner.py", line 172 in pytest_runtest_call
File "/home/alexandre/workspace/alxd/proton-vpn-gtk-app/venv/lib/python3.10/site-packages/pluggy/_callers.py", line 102 in _multicall
File "/home/alexandre/workspace/alxd/proton-vpn-gtk-app/venv/lib/python3.10/site-packages/pluggy/_manager.py", line 119 in _hookexec
File "/home/alexandre/workspace/alxd/proton-vpn-gtk-app/venv/lib/python3.10/site-packages/pluggy/_hooks.py", line 501 in __call__
File "/home/alexandre/workspace/alxd/proton-vpn-gtk-app/venv/lib/python3.10/site-packages/_pytest/runner.py", line 240 in <lambda>
File "/home/alexandre/workspace/alxd/proton-vpn-gtk-app/venv/lib/python3.10/site-packages/_pytest/runner.py", line 340 in from_call
File "/home/alexandre/workspace/alxd/proton-vpn-gtk-app/venv/lib/python3.10/site-packages/_pytest/runner.py", line 239 in call_and_report
File "/home/alexandre/workspace/alxd/proton-vpn-gtk-app/venv/lib/python3.10/site-packages/_pytest/runner.py", line 134 in runtestprotocol
File "/home/alexandre/workspace/alxd/proton-vpn-gtk-app/venv/lib/python3.10/site-packages/_pytest/runner.py", line 115 in pytest_runtest_protocol
File "/home/alexandre/workspace/alxd/proton-vpn-gtk-app/venv/lib/python3.10/site-packages/pluggy/_callers.py", line 102 in _multicall
File "/home/alexandre/workspace/alxd/proton-vpn-gtk-app/venv/lib/python3.10/site-packages/pluggy/_manager.py", line 119 in _hookexec
File "/home/alexandre/workspace/alxd/proton-vpn-gtk-app/venv/lib/python3.10/site-packages/pluggy/_hooks.py", line 501 in __call__
File "/home/alexandre/workspace/alxd/proton-vpn-gtk-app/venv/lib/python3.10/site-packages/_pytest/main.py", line 364 in pytest_runtestloop
File "/home/alexandre/workspace/alxd/proton-vpn-gtk-app/venv/lib/python3.10/site-packages/pluggy/_callers.py", line 102 in _multicall
File "/home/alexandre/workspace/alxd/proton-vpn-gtk-app/venv/lib/python3.10/site-packages/pluggy/_manager.py", line 119 in _hookexec
File "/home/alexandre/workspace/alxd/proton-vpn-gtk-app/venv/lib/python3.10/site-packages/pluggy/_hooks.py", line 501 in __call__
File "/home/alexandre/workspace/alxd/proton-vpn-gtk-app/venv/lib/python3.10/site-packages/_pytest/main.py", line 339 in _main
File "/home/alexandre/workspace/alxd/proton-vpn-gtk-app/venv/lib/python3.10/site-packages/_pytest/main.py", line 285 in wrap_session
File "/home/alexandre/workspace/alxd/proton-vpn-gtk-app/venv/lib/python3.10/site-packages/_pytest/main.py", line 332 in pytest_cmdline_main
File "/home/alexandre/workspace/alxd/proton-vpn-gtk-app/venv/lib/python3.10/site-packages/pluggy/_callers.py", line 102 in _multicall
File "/home/alexandre/workspace/alxd/proton-vpn-gtk-app/venv/lib/python3.10/site-packages/pluggy/_manager.py", line 119 in _hookexec
File "/home/alexandre/workspace/alxd/proton-vpn-gtk-app/venv/lib/python3.10/site-packages/pluggy/_hooks.py", line 501 in __call__
File "/home/alexandre/workspace/alxd/proton-vpn-gtk-app/venv/lib/python3.10/site-packages/_pytest/config/__init__.py", line 174 in main
File "/home/alexandre/workspace/alxd/proton-vpn-gtk-app/venv/lib/python3.10/site-packages/_pytest/config/__init__.py", line 197 in console_main
File "/home/alexandre/workspace/alxd/proton-vpn-gtk-app/venv/bin/pytest", line 8 in <module>
Extension modules: gi._gi, cairo._cairo, gi._gi_cairo, _cffi_backend, _dbus_bindings, _dbus_glib_bindings (total: 6)
[1] 14235 segmentation fault (core dumped) pytest
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.