cross-posted from: https://slrpnk.net/post/30244810
ProtonVPN CLI, Android Linux Dev Terminal
Hello,
First, I’m not expecting any specific amount of support, or absolute resolution, as I’m fairly certain this falls under non-standard use. So, this is for testing and experimentation. Thanks ahead of time for any help or guidance you can think of!
Testing the recent CLI program in the Linux Development Environment on a Pixel 6a, GrapheneOS, I’ve had an error come up.
proton.keyring_linux.core.keyring_linux:120 | ERROR | Keyring keyring.backends.SecretService.Keyring (priority: 5) error Traceback (most recent call last): File "/usr/lib/python3/dist-packages/secretstorage/util.py", line 48, in send_and_get_reply raise DBusErrorResponse(resp_msg) jeepney.wrappers.DBusErrorResponse: [org.freedesktop.DBus.Error.UnknownMethod] ('Object does not exist at path “/org/freedesktop/secrets/collection/login”',) The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/usr/lib/python3/dist-packages/secretstorage/collection.py", line 177, in get_default_collection return Collection(connection) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/secretstorage/collection.py", line 45, in __init__ self._collection.get_property('Label') File "/usr/lib/python3/dist-packages/secretstorage/util.py", line 67, in get_property (signature, value), = self.send_and_get_reply(msg) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/secretstorage/util.py", line 52, in send_and_get_reply raise ItemNotFoundException('Item does not exist!') from resp secretstorage.exceptions.ItemNotFoundException: Item does not exist! During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3/dist-packages/keyring/backends/SecretService.py", line 61, in get_preferred_collection collection = secretstorage.get_default_collection(bus) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/secretstorage/collection.py", line 179, in get_default_collection return create_collection(connection, 'Default', 'default', session) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/secretstorage/collection.py", line 159, in create_collection raise PromptDismissedException('Prompt dismissed.') secretstorage.exceptions.PromptDismissedException: Prompt dismissed. During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3/dist-packages/proton/keyring_linux/core/keyring_linux.py", line 111, in _is_backend_working keyring_backend.get_password( File "/usr/lib/python3/dist-packages/keyring/backends/SecretService.py", line 78, in get_password collection = self.get_preferred_collection() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-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: Prompt dismissed.. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX | proton.keyring_linux.core.keyring_linux:120 | ERROR | Keyring keyring.backends.SecretService.Keyring (priority: 5) error Traceback (most recent call last): File "/usr/lib/python3/dist-packages/secretstorage/util.py", line 48, in send_and_get_reply raise DBusErrorResponse(resp_msg) jeepney.wrappers.DBusErrorResponse: [org.freedesktop.DBus.Error.UnknownMethod] ('Object does not exist at path “/org/freedesktop/secrets/collection/login”',) The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/usr/lib/python3/dist-packages/secretstorage/collection.py", line 177, in get_default_collection return Collection(connection) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/secretstorage/collection.py", line 45, in __init__ self._collection.get_property('Label') File "/usr/lib/python3/dist-packages/secretstorage/util.py", line 67, in get_property (signature, value), = self.send_and_get_reply(msg) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/secretstorage/util.py", line 52, in send_and_get_reply raise ItemNotFoundException('Item does not exist!') from resp secretstorage.exceptions.ItemNotFoundException: Item does not exist! During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3/dist-packages/keyring/backends/SecretService.py", line 61, in get_preferred_collection collection = secretstorage.get_default_collection(bus) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/secretstorage/collection.py", line 179, in get_default_collection return create_collection(connection, 'Default', 'default', session) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/secretstorage/collection.py", line 159, in create_collection raise PromptDismissedException('Prompt dismissed.') secretstorage.exceptions.PromptDismissedException: Prompt dismissed. During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3/dist-packages/proton/keyring_linux/core/keyring_linux.py", line 111, in _is_backend_working keyring_backend.get_password( File "/usr/lib/python3/dist-packages/keyring/backends/SecretService.py", line 78, in get_password collection = self.get_preferred_collection() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-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: Prompt dismissed.. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX | proton.keyring_linux.core.keyring_linux:120 | ERROR | Keyring keyring.backends.SecretService.Keyring (priority: 5) error Traceback (most recent call last): File "/usr/lib/python3/dist-packages/secretstorage/util.py", line 48, in send_and_get_reply raise DBusErrorResponse(resp_msg) jeepney.wrappers.DBusErrorResponse: [org.freedesktop.DBus.Error.UnknownMethod] ('Object does not exist at path “/org/freedesktop/secrets/collection/login”',) The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/usr/lib/python3/dist-packages/secretstorage/collection.py", line 177, in get_default_collection return Collection(connection) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/secretstorage/collection.py", line 45, in __init__ self._collection.get_property('Label') File "/usr/lib/python3/dist-packages/secretstorage/util.py", line 67, in get_property (signature, value), = self.send_and_get_reply(msg) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/secretstorage/util.py", line 52, in send_and_get_reply raise ItemNotFoundException('Item does not exist!') from resp secretstorage.exceptions.ItemNotFoundException: Item does not exist! During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3/dist-packages/keyring/backends/SecretService.py", line 61, in get_preferred_collection collection = secretstorage.get_default_collection(bus) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/secretstorage/collection.py", line 179, in get_default_collection return create_collection(connection, 'Default', 'default', session) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/secretstorage/collection.py", line 159, in create_collection raise PromptDismissedException('Prompt dismissed.') secretstorage.exceptions.PromptDismissedException: Prompt dismissed. During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3/dist-packages/proton/keyring_linux/core/keyring_linux.py", line 111, in _is_backend_working keyring_backend.get_password( File "/usr/lib/python3/dist-packages/keyring/backends/SecretService.py", line 78, in get_password collection = self.get_preferred_collection() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-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: Prompt dismissed.Given what I’ve seen, it’s trying to access keyring, can’t find relevant files, and fails to do what it’s wanting.
In a stimulated environment like this, similar to maybe docker/podman as I’ve noticed, a ‘regular’ boot/initialization doesn’t occur and seemingly neither does a logon. So, keyring and other relevant files, services, or utilities just may not get initialized as a program might expect or need.
Though, a keyring program seems installed, and autocomplete even works to enter the name in the terminal, that doesn’t mean it’s operating as needed.
Given no regular desktop environment to utilize; as the 6a seems to not function with that aspect of the Linux Dev Environment, whether that would resolve this or not; there may not be a solution here.
In the past, with the same hardware and environment, I’ve gotten manual configuration of OpenVPN to work with config files, so, at least at the time of that experiment, it’s seemingly feasible to use ProtonVPN through that method if needed.
Thanks again for any direction or advice. I hope you’re having a good weekend.

