Still can't store password securely with gnome-libsecret parameter

I’m on Arch and the version is AUR mailspring-bin

updates.getmailspring.com/check/linux/x64/1.15.0-8751a973/9c432f83-3c4d-45db-a15d-04fcf38f2364/stable

So if I start mailspring alone, or run it with the following

mailspring --password-store="gnome-libsecret"

It still errors out.

[31839:0116/093416.588723:ERROR:object_proxy.cc(576)] Failed to call method: org.freedesktop.DBus.Properties.Get: object_path= /org/freedesktop/portal/desktop: org.freedesktop.DBus.Error.InvalidArgs: No such interface “org.freedesktop.portal.FileChooser”
[31839:0116/093416.588755:ERROR:select_file_dialog_linux_portal.cc(294)] Failed to read portal version property
Running database migrations
App load time: 146ms

{"error":null}
Manual update check (updates.getmailspring.com/check/linux/x64/1.15.0-8751a973/9c432f83-3c4d-45db-a15d-04fcf38f2364/stable) returned 204
Error: Could not call remote method 'encryptString'. Check that the method signature is correct. Underlying error: Error: Error while encrypting the text provided to safeStorage.encryptString. Encryption is not available.Underlying stack: Error: Error while encrypting the text provided to safeStorage.encryptString. Encryption is not available.
    at /usr/lib/mailspring/app.asar/node_modules/@electron/remote/dist/src/main/server.js:480:71
    at IpcMainImpl.<anonymous> (/usr/lib/mailspring/app.asar/node_modules/@electron/remote/dist/src/main/server.js:323:27)
    at IpcMainImpl.emit (node:events:518:28)
    at IpcMainImpl.emit (node:domain:489:12)
    at WebContents.<anonymous> (node:electron/js2c/browser_init:2:87712)
    at WebContents.emit (node:events:518:28)
    at WebContents.emit (node:domain:489:12)

    at /usr/lib/mailspring/app.asar/node_modules/@electron/remote/dist/src/main/server.js:483:25
    at IpcMainImpl.<anonymous> (/usr/lib/mailspring/app.asar/node_modules/@electron/remote/dist/src/main/server.js:323:27)
    at IpcMainImpl.emit (node:events:518:28)
    at IpcMainImpl.emit (node:domain:489:12)
    at WebContents.<anonymous> (node:electron/js2c/browser_init:2:87712)
    at WebContents.emit (node:events:518:28)
    at WebContents.emit (node:domain:489:12) {
  cause: {
    stack: 'Error: Error while encrypting the text provided to safeStorage.encryptString. Encryption is not available.\n' +
      '    at /usr/lib/mailspring/app.asar/node_modules/@electron/remote/dist/src/main/server.js:480:71\n' +
      '    at IpcMainImpl.<anonymous> (/usr/lib/mailspring/app.asar/node_modules/@electron/remote/dist/src/main/server.js:323:27)\n' +
      '    at IpcMainImpl.emit (node:events:518:28)\n' +
      '    at IpcMainImpl.emit (node:domain:489:12)\n' +
      '    at WebContents.<anonymous> (node:electron/js2c/browser_init:2:87712)\n' +
      '    at WebContents.emit (node:events:518:28)\n' +
      '    at WebContents.emit (node:domain:489:12)',
    message: 'Error while encrypting the text provided to safeStorage.encryptString. Encryption is not available.'
  }
} { pluginIds: [] }
(node:31839) [DEP0066] DeprecationWarning: OutgoingMessage.prototype._headers is deprecated
(Use `electron --trace-deprecation ...` to show where the warning was created)

I have the gnome keyring and gnome polkit services running.

world/gnome-keyring 1:46.2-1
polkit-gnome 0.105-11
libsecret 0.21.4-1

I tried remmina and parapolic both works fine with the gnome-keyring , can see they have stored password ok. So it’s mailspring’s problem or it’s using flappak and needs some extra setup?
Tried both 1.14 and 1.15 same problem

The error “Encryption is not available” means that Electron’s safeStorage API can’t access a secret service backend, even though GNOME Keyring is installed. On Arch Linux this most commonly happens because the keyring daemon isn’t running when Mailspring starts. Try these steps:

  1. Make sure gnome-keyring-daemon is launched as part of your session (many DEs do this automatically, but tiling WMs often don’t).
  2. Run gnome-keyring-daemon --start --components=secrets in a terminal, then launch Mailspring from the same terminal session.
  3. If you’re using a non-GNOME desktop, try kwallet instead, or set the environment variable ELECTRON_PASSWORD_STORE=kwallet before launching.
    The --password-store="gnome-libsecret" flag should work once the daemon is actually running and the D-Bus socket is available.