Password Management Error after the latest Upgrade

I do see password-manager-service enabled under snap connections mailspring, but running with --password-store="gnome-libsecret" does not fix the issue. When I run with that flag, I do get some errors it looks like

❯ mailspring --password-store="gnome-libsecret"
Gtk-Message: 07:59:03.433: Not loading module "atk-bridge": The functionality is provided by GTK natively. Please try to not load it.
Gtk-Message: 07:59:03.433: Failed to load module "appmenu-gtk-module"

(mailspring:530636): Gtk-WARNING **: 07:59:03.467: GTK+ module /snap/mailspring/526/gnome-platform/usr/lib/gtk-2.0/modules/libcanberra-gtk-module.so cannot be loaded.
GTK+ 2.x symbols detected. Using GTK+ 2.x and GTK+ 3 in the same process is not supported.
Gtk-Message: 07:59:03.467: Failed to load module "canberra-gtk-module"

(mailspring:530636): Gtk-WARNING **: 07:59:03.468: GTK+ module /snap/mailspring/526/gnome-platform/usr/lib/gtk-2.0/modules/libcanberra-gtk-module.so cannot be loaded.
GTK+ 2.x symbols detected. Using GTK+ 2.x and GTK+ 3 in the same process is not supported.
Gtk-Message: 07:59:03.468: Failed to load module "canberra-gtk-module"
Running database migrations
App load time: 151ms

{"error":null}
libva error: vaGetDriverNames() failed with unknown libva error
[530636:1117/075903.649599:ERROR:browser_main_loop.cc(267)] GLib-GObject: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
Error: Could not call remote method 'decryptString'. Check that the method signature is correct. Underlying error: Error: Error while decrypting the ciphertext provided to safeStorage.decryptString.Underlying stack: Error: Error while decrypting the ciphertext provided to safeStorage.decryptString.
    at /snap/mailspring/526/usr/share/mailspring/resources/app.asar/node_modules/@electron/remote/dist/src/main/server.js:465:71
    at IpcMainImpl.<anonymous> (/snap/mailspring/526/usr/share/mailspring/resources/app.asar/node_modules/@electron/remote/dist/src/main/server.js:323:27)
    at IpcMainImpl.emit (node:events:390:28)
    at IpcMainImpl.emit (node:domain:475:12)
    at EventEmitter.<anonymous> (node:electron/js2c/browser_init:161:10935)
    at EventEmitter.emit (node:events:390:28)
    at EventEmitter.emit (node:domain:475:12)

    at /snap/mailspring/526/usr/share/mailspring/resources/app.asar/node_modules/@electron/remote/dist/src/main/server.js:468:25
    at IpcMainImpl.<anonymous> (/snap/mailspring/526/usr/share/mailspring/resources/app.asar/node_modules/@electron/remote/dist/src/main/server.js:323:27)
    at IpcMainImpl.emit (node:events:390:28)
    at IpcMainImpl.emit (node:domain:475:12)
    at EventEmitter.<anonymous> (node:electron/js2c/browser_init:161:10935)
    at EventEmitter.emit (node:events:390:28)
    at EventEmitter.emit (node:domain:475:12) {
  message: "Recovered Error: Could not call remote method 'decryptString'. Check that the method signature is correct. Underlying error: Error: Error while decrypting the ciphertext provided to safeStorage.decryptString.Underlying stack: Error: Error while decrypting the ciphertext provided to safeStorage.decryptString.\n" +
    '    at /snap/mailspring/526/usr/share/mailspring/resources/app.asar/node_modules/@electron/remote/dist/src/main/server.js:465:71\n' +
    '    at IpcMainImpl.<anonymous> (/snap/mailspring/526/usr/share/mailspring/resources/app.asar/node_modules/@electron/remote/dist/src/main/server.js:323:27)\n' +
    '    at IpcMainImpl.emit (node:events:390:28)\n' +
    '    at IpcMainImpl.emit (node:domain:475:12)\n' +
    '    at EventEmitter.<anonymous> (node:electron/js2c/browser_init:161:10935)\n' +
    '    at EventEmitter.emit (node:events:390:28)\n' +
    '    at EventEmitter.emit (node:domain:475:12)\n'
} { pluginIds: [] }
(node:530636) [DEP0066] DeprecationWarning: OutgoingMessage.prototype._headers is deprecated
(Use `mailspring --trace-deprecation ...` to show where the warning was created)
Raven: 429 - undefined
❯ mailspring --version
1.12.0-390a301d
❯ uname -a
Linux pop-os 6.5.6-76060506-generic #202310061235~1697396945~22.04~9283e32 SMP PREEMPT_DYNAMIC Sun O x86_64 x86_64 x86_64 GNU/Linux

I’m also experiencing this, but I noticed something unfortunate with the provided snap workaround. When I do sudo snap refresh mailspring --revision=523 it works great, but then snap goes ahead and auto-updates the package again a few hours later. Does anyone have any recommendations about what I can do about this?

edit: I think I found the solution, I seem to be able to do this: sudo snap refresh --hold=forever mailspring which tells me General refreshes of "mailspring" held indefinitely so hopefully this will stop the auto-updates.

I managed to reproduce the error in a virtual machine running Pop OK. I still can’t get my head around why on a first start of Mailspring, the snap application can connect to the host keyring for encryption but not on further restarts. I will start debugging this issue and hope to come up with a solution that works quickly.

1 Like

@ipkpjersi @jwoertink @3v1n0 @sdanckert1 @lostinafro @XZillA @jerjako @DawoodMorris

Did anyone of you try to completely uninstall Mailspring (deleting all its configuration), rebooting the machine and then installing Mailspring version 1.12 via snap freshly? I don’t understand why, but this seems to have resolved the issue for me on my test system.

sudo snap remove mailspring
sudo snap install mailspring

This all still looks quite random to me, so any further information (especially if it works sometimes and othertimes not) are really helpful.

I also have no issues with the .deb version of Mailspring, so if you need a workaround while we are trying to resolve the issue in the snap, that might be something. You can try copying over your config.json file from the snap to your .deb installation to keep your account setup.

cp ~/snap/Mailspring/common/config.json ~/.config/Mailspring/config.json
1 Like

As for me, downloading and installing the .deb file fixes the problem.

I did this and so far all is good.

@Phylu

I had the same problem as other users with version 1.12.0. My OS is Ubuntu 22.04 and I installed the app with snap. So as you suggested, I removed the version with snap but installed the version with the .deb package and it’s working.

I have the feeling that there is some kind of strange race condition in the setup. I was repeatedly able to open mailspring correctly with some instances where I could not open it at all on Zorin OS which looks similar to the issues on Pop OS, getting the error

Error: Could not call remote method 'decryptString'. Check that the method signature is correct. Underlying error: Error: Error while decrypting the ciphertext provided to safeStorage.decryptString.Underlying stack: Error: Error while decrypting the ciphertext provided to safeStorage.decryptString.

I tried fixing this using the suggestion as of [SNAP] Update to gnome extension and core22 by soumyaDghosh · Pull Request #2464 · Foundry376/Mailspring · GitHub but this did not produce any positive effects.

Hey folks, thanks for reporting this - I’ve been looking into the Electron internals and I’m hoping we can get this fixed very soon. One interesting note is that the error most folks are seeing in this thread:

Error: Could not call remote method 'decryptString'. Check that the method signature is correct.

Is actually not one of the errors that is generated by the Electron safeStorage APIs (found here)
https://github.com/electron/electron/blob/2c03b8fd6be5029dce0a78849860e5f57a3b3026/shell/browser/api/electron_api_safe_storage.cc#L84

I think that you’re correct @Phylu and this is some sort of race condition of electron-remote error, and may not be related to the key storage setup on Linux.

Hey folks,

We’ve released Mailspring 1.13.0, which addresses issues with the snap build of 1.12.0. I was able to reproduce the issues reported above, where the snap was able to write your passwords but not read them after a restart, causing it to succeed on the first run and then get into an invalid + broken state after quitting + restarting.

I fixed it by copying snapcraft.yaml configuration from the chromium snap, which I observed was reading / writing from the keychain successfully. They were building libsecret into the snap explicitly, which did the trick for us as well.

If you snap refresh mailspring, you’ll get the new revision which addresses these issues. If your Mailspring install is broken, you’ll launch into a bit of a mess and I’m really sorry for the hassle. You’ll need to:

  • Go to Preferences > Subscription and sign in to your Mailspring identity again to enable read receipts, send later, etc. (If you were signed in previously).

  • Go to Preferences > Accounts and click “Reconnect” or “Re-authorize” for each account that is shown in red or having connection difficulty.

Thankfully, with this upgrade Mailspring is running on Electron 22 and the new safeStorage APIs, which gives us a clear path forward and makes it much easier to incorporate upstream security patches and updates. I appreciate everyone’s patience and I’m sorry this has been a rocky update.

3 Likes

Updating to Snap v1.13.1 in Ubuntu 23.10 did solve the issue.

Thanks!

1 Like

Thanks, the issue was solved as well for me with the 1.13.1. I was able to reconnect all my accounts. Have a good day :slight_smile:

1 Like

Thank you, snap version 1.13.1 on Ubuntu 20.04 works perfectly now.

1 Like

Snap only: If you have installed Mailspring via the snap package, ensure that Mailspring is able to access your operation system’s key storage to encrypt your e-mail account credentials. To do so, run sudo snap connect mailspring:password-manager-service in a terminal.

Please remove this statement, this is not true anymore and just opens a security hole.

See also snap: Force usage of libsecret everywhere and remove password manager service plug by 3v1n0 · Pull Request #2477 · Foundry376/Mailspring · GitHub

@3v1n0 Thanks for the hint. I removed the passage from the post.

1 Like

Hi, I’m unable to make a fresh install work; I’ve tried many turnarounds but I’m still stuck :confused:

Running Linux EndeavourOS (arch-based), installed with AUR (Arch User Repository). Not sure if I upgraded from .11 or .12

First I updated Mailspring from AUR to 1.13.1, got same error as 3v1n0 (Nov 15th) when trying to log in into MailspringID in preferences. When I saved & removed the config folder, I was stuck to the welcome steps (error message, translated from French, is like “Mailspring could not securely store your password”). I removed & reinstall Mailspring from AUR and got same errors depending if I put back the config folder.

Then I tried the snap version (1.13.1), install, refresh, remove, install… I cannot get through the welcome menu. I get this message:
Error: Could not call remote method 'encryptString'. Check that the method signature is correct. Underlying error: Error: Error while decrypting the ciphertext provided to safeStorage.decryptString. Encryption is not available.Underlying stack: Error: Error while decrypting the ciphertext provided to safeStorage.decryptString. Encryption is not available.

Side note, probably not relevant: with snap, I also get some error messages from Gtk such as Failed to load module "xapp-gtk3-module" and “canberra-gtk-module” (my wm is i3, not gnome-based)

Thanks for your help

@whitenoise565 Please check out the information about “other desktop environments” here: Password Management Error - #2 by system

@Phylu Thanks for the quick answer, I had both packages already installed. I reinstalled them just in case but nothing changed

The important part should be, to run mailspring --password-store="gnome-libsecret"

@Phylu Thank you very much! It’s working and I even retrieved my settings & config. Have a nice day