Open Bug 1716240 Opened 1 year ago Updated 21 days ago

Thunderbird fails to save passwords: NS_ERROR_ABORT: User canceled master password entry

Categories

(Thunderbird :: Security, defect)

defect

Tracking

(thunderbird_esr91? affected, thunderbird91? affected)

Tracking Status
thunderbird_esr91 ? affected
thunderbird91 ? affected

People

(Reporter: aryx, Unassigned)

References

Details

Thunderbird 91.0a1 20210613095145 on Windows 8.1

After a profile got migrated to 91.0a1, adding an account for an email address which already exists outside Thunderbird identifies the correct credentials but fails to add the account if Thunderbird shall save the password.

From the error console:
NS_ERROR_ABORT: User canceled master password entry 3 crypto-SDR.js:90
encrypt resource://gre/modules/crypto-SDR.js:90
_encryptLogin resource://gre/modules/storage-json.js:830
addLogin resource://gre/modules/storage-json.js:206
addLogin resource://gre/modules/LoginManager.jsm:326
rememberPassword chrome://messenger/content/accountcreation/createInBackend.js:324
createAccountInBackend chrome://messenger/content/accountcreation/createInBackend.js:75
finish chrome://messenger/content/accountcreation/accountSetup.js:2012
validateAndFinish chrome://messenger/content/accountcreation/accountSetup.js:1967
OnStopRunningUrl chrome://messenger/content/accountcreation/verifyConfig.js:225

Uncaught
Exception { name: "NS_ERROR_ABORT", message: "User canceled master password entry", result: 2147500036, filename: "resource://gre/modules/crypto-SDR.js", lineNumber: 90, columnNumber: 0, data: null, stack: "encrypt@resource://gre/modules/crypto-SDR.js:90:26\n_encryptLogin@resource://gre/modules/storage-json.js:830:36\naddLogin@resource://gre/modules/storage-json.js:206:14\naddLogin@resource://gre/modules/LoginManager.jsm:326:26\nrememberPassword@chrome://messenger/content/accountcreation/createInBackend.js:324:21\ncreateAccountInBackend@chrome://messenger/content/accountcreation/createInBackend.js:75:21\nfinish@chrome://messenger/content/accountcreation/accountSetup.js:2012:44\nvalidateAndFinish/<@chrome://messenger/content/accountcreation/accountSetup.js:1967:14\nOnStopRunningUrl@chrome://messenger/content/accountcreation/verifyConfig.js:225:12\n", location: XPCWrappedNative_NoHelper }
crypto-SDR.js:90

Thunderbird is not set up to use a master password.

This is a general issue to save passwords in that profile (e.g. also cardDAV passwords).

Component: Account Manager → Preferences
Summary: adding account for existing email address fails after account settings verified, stuck at 'Sending login information...' → Thunderbird fails to save passwords: NS_ERROR_ABORT: User canceled master password entry
Severity: -- → S3
Component: Preferences → Security

After a profile got migrated to 91.0a1, adding an account for an email address which already exists outside Thunderbird identifies the correct credentials but fails to add the account if Thunderbird shall save the password.

This sentence isn't easy to understand, lack of commas, order of events is unclear.

An email address that exists outside Thunderbird? All email addresses have to exist outside of Thunderbird already, before you can add an account to Thunderbird.
You say Thunderbird accepts the account credentials you have entered and says it is corect?
Then you tell Thunderbird to save the password.
But then Thunderbird fails to add the account?

But let's focus on the inconsistency, because the error console reports you have canceled the master password dialog, but you say there is no master password set.

Maybe the cause is a profile inconsistency. If TB thinks that the MP wasn't entered, then maybe it only thinks that is the cause. The symptom is probably that it cannot decrypt a saved login?

If you have saved logins, but they cannot be decrypted, it could mean that files key4.db and logins.json don't match.

Entries in file logins.json can ONLY be used if you have the correct keys4.db file. The keys file contains an automatically created symmetric cryptographic key. If you deleted keys4.db, TB will automatically create a fresh one, with a fresh key, and that cannot be used to decrypt old logins.json entries. (It can still create new entries and later decrypt those new entries.) The same inconsistency happens if you copy keys4.db from a different profile, or copy logins.json from a different profile.

If you did one of these actions, then your profile is corrupted, and this bug is invalid.
(ALthough I'd agree that our error reporting sucks.)

You need to log in before you can comment on or make changes to this bug.