Thunderbird keeps asking for address book password
Thunderbird keeps asking for address book password everytime I open thunderbird. I have selected to "save password in password manager" but it won't save it. It works after I enter it, properly syncs my address book, but it's frustrating when to have to copy from my lastpass every time I open it.
I have looked in preferences in saved passwords and it is not there. My imap, smtp and caldav logins are there, but no carddav password. Nothing else asks for password, just carddav.
Using: - Windows 10 Pro 21H1 - Thunderbird 91.11.0 x64 - CardDAV server is hosted by zoho (https://contacts.zoho.com)
Chosen solution
I ended up doing the following:
- checked the network requests, they were 207 status, couldn't see WWW-Authenticate: Basic in any of the response headers
- copied the request endpoint (which was "https://contacts.zoho.com/carddav/[email protected]/default/contacts/")
- set a breakpoint in LoginManager.jsm at the first line of _checkLogin function
- added carddav account through Thunderbird
- when execution paused, I check login.httpRealm, it was set to ""
- in console I typed: login.httpRealm="https://contacts.zoho.com/carddav/[email protected]/default/contacts/"
- continued execution, and didn't receive an error
- checked saved passwords and it was there
- opened a number of times and it appears to be syncing without asking for password
All Replies (4)
See attached for what happens in the error console when I login.
Developer suggests...
"looks like their server sends a (probably 401) response with weird headers. Use the devtools network panel and copy the headers. I can see how that might happen with the header WWW-Authenticate: Basic realm="" "
Stepping through the network requests there was 3.
Entering the username and location on the add carddav account then:
1st request went to https://contacts.zoho.com and gave a 207, but inspecting the response payload gave a 404 and an alternate URL.
Gave password then:
2nd request went to https://contacts.zoho.com/carddav/[email protected]/default/contacts/, again with a 207 and the response payload appeared to return the carddav address book names.
Asked me to choose address book then:
3rd request went to https://contacts.zoho.com/carddav/[email protected]/default/contacts/, again with a 207 status and the response payload was the address book data.
My fix:
I just put a breakpoint in the LoginManager.jsm file at the start of the _checkLogin function. When it stop, I added "https://contacts.zoho.com/carddav/[email protected]/default/contacts/" to login.httpRealm manually and then continued execution.
That seemed to add the password to my password list and appears to sync successfully without asking.
Modified
Chosen Solution
I ended up doing the following:
- checked the network requests, they were 207 status, couldn't see WWW-Authenticate: Basic in any of the response headers
- copied the request endpoint (which was "https://contacts.zoho.com/carddav/[email protected]/default/contacts/")
- set a breakpoint in LoginManager.jsm at the first line of _checkLogin function
- added carddav account through Thunderbird
- when execution paused, I check login.httpRealm, it was set to ""
- in console I typed: login.httpRealm="https://contacts.zoho.com/carddav/[email protected]/default/contacts/"
- continued execution, and didn't receive an error
- checked saved passwords and it was there
- opened a number of times and it appears to be syncing without asking for password