Submind YouTube summaries
Thumbnail for Mac Passwords App Painfully Slow? Find the Real Cause

Mac Passwords App Painfully Slow? Find the Real Cause

Watch on YouTube

Video summary

A viewer named Bruce reached out to discuss a frustratingly slow performance issue with his Mac Passwords app, noting that while the same iCloud-synced passwords function perfectly on his iPhone and another Mac, his specific 2019 Intel MacBook Pro experiences significant lag every time he opens the application. Although disabling iCloud syncing temporarily improves speed, the problem returns immediately upon re-enabling it, suggesting that the issue lies within local database corruption or bloat rather than a simple network sync delay. The host explains that this is a common scenario where Apple's software fails to automatically clean up old synchronization records or optimize indexes, leading to databases that grow inefficiently over time and require manual intervention to restore performance. To diagnose and resolve the issue, the recommended approach involves identifying the specific SQLite database files responsible for storing password data, which are typically located within the user's Library container at a path like `com.apple.passwords/data`. The host demonstrates how to use Activity Monitor on macOS to find these files by checking the "Open Files" tab while the application is running, as this list reveals exactly which databases the app is accessing. Once identified, users can employ tools like SQLite browsers or third-party applications such as Base (available via Setapp) to inspect the database structure and delete unnecessary sync records or orphaned data that Apple's system does not automatically remove. However, proceeding with manual database edits carries inherent risks, particularly because iCloud syncing involves multiple layers of databases including local copies and remote sync files. If a user accidentally deletes critical data or breaks the database structure before properly managing the sync state, they could potentially lose all their passwords or cause the system to repopulate the local database with corrupted data from iCloud. Therefore, the most crucial step before attempting any cleanup is to export all passwords to a secure file and create full backups of the relevant library folders. This precaution ensures that even if the manual optimization process causes unintended side effects, the user can easily restore their password vault without permanent data loss. Ultimately, the solution often involves a combination of cleaning up obsolete entries—such as passwords for websites that no longer exist—and potentially exploring lower-level interactions with Keychain Access to understand how the Passwords app wraps around system keychains. While hardware limitations like older Intel processors or spinning hard drives might contribute to slowness, the primary culprit in these cases is frequently the accumulation of unmanaged sync records within the SQLite database. By carefully inspecting the database files, removing redundant entries, and maintaining rigorous backup habits, users can significantly improve the responsiveness of their password management app without relying on guesswork or risking data integrity.
Read the full video transcript
Bruce, actually different Bruce, but Bruce says, "Hi Dave, ET, and Al. In a recent podcast, you shared about your final success in getting your contacts database to respond by well, by disconnecting from iCloud, deleting a bloated database, and then reconnecting. The end result being a vastly improved speed with that app. I have a similar situation going on with my Mac password app, which is to say, it is glacially slow each time I open it to access passwords. The same iCloud synced passwords work fine on a different Mac and on my phone. That's an interesting clue. Uh if I turn off passwords in iCloud, it gets a bit faster, but as soon as I turn it back on, we're back to very slow. I'm wondering if you know what the corresponding database or other files to delete would be in this scenario. Or if I were to ask Claude what the accurate question prompt would be. He's got a 2019 MacBook Pro 16-in Intel, and he is an active MacCast listener or MGG listener, sorry, he might be a MacCast listener, uh since episode 1, but listening to MGG since episode 1, and a happy premium customer. Thank you so much for that, Bruce. So, >> So, um a good question, obviously. Um and but this is as with a lot of this stuff, it's one of those, you know, be careful, don't get caught scenarios, obviously. Mucking about with somebody else's databases where they haven't published any documentation can be rough. Uh and that's why my solution path for the contacts thing was what it was, right? Where I let it be the thing to clear out all of its old sync records, which it turns out it did when I turned off pass or contact syncing in iCloud and turned it back on. And we've had others confirm the same thing. It seems like at least for you, whatever needs to be cleared out isn't really being cleared out by that with the passwords database. Um the way I got here with my contacts database is I pointed Claude code at my um contacts folder. I think I actually just pointed it at my my library folder. I I think that's where I and sent it on its way and I I think it went and searched online to find out what my contacts database was and and then it went and interrogated those databases because they're just sequel light databases and and found all these extra, you know, sync records in there and and and then we had a conversation about what to do about these things, right? So, I would suggest doing something similar. However, um there is a trick to figuring out which database an app uses uh when it is open. And uh I did this just now. I didn't really think about it when we were prepping this question, but that's okay. We'll do it in real time. I opened my passwords app on my Mac and then I opened Activity Monitor. And in Activity Monitor, I double-clicked on passwords and I went to the open files and ports tab. I scrolled all the way down to the bottom because this tab uh fills up it it is updated in real time and the things at it is in the most recently opened at the bottom list, right? So, it is oldest to newest. So, if you look at this for any given app, you'll see like you know, where what the files it looked at when it start first opened the app and then the files that it's looking at at the bottom. And in the Passwords app, it's pretty obvious from kind of looking at this, and I've done this a lot. So, when I say it's pretty obvious, I say it's pretty obvious to me after having done this countless times over, you know, a decade or more. Uh it's pretty obvious to me that these things are stored in home library containers com.apple.passwords/data. Uh because I know what SQLite databases look like, and they are there for certain. They may be elsewhere. Uh but you could just and and this this list and maybe this is one of those quick tips buried inside. This list is copyable. You can just click in the inside the list. You won't see anything, and then do a select all, and it selects everything in the list. So, you could just paste that into Claude code and uh tell it what to do. But you you want to point it there. It will probably agree with this, and they are SQLite databases. So, you could have Claude interrogate them. I would make backups before you do this. >> What could go wrong? >> I know I said it once already. Uh I'll say it a third time. Please make backups before you do this. I don't know that we can overstate that. But but that's that's where I would look, and that's how I would go about solving this. That's how I went about solving it with contacts at least to a degree. So, um but those SQLite databases uh Apple has proven that they do not do cleanup on they don't write their own software to do all the cleanup that can be done on these databases to make them more efficient. They don't write all the indexes for these databases that could make them more efficient. I don't know why that that this is the case. Clearly, there are many of us that suffer from this, and I would assume that Apple engineers would at least some of Apple's engineers would be in the group of people that are suffering from these databases that have gotten large over time, and yet they still haven't done this. But, they haven't done it. So, it's up to us to find other ways to go about doing these things. Um The The thing where you want to be most careful is that this is syncing. So, there is another The way iCloud syncing works is generally speaking, and I can't say this for sure with passwords, but it's been true with other things like calendars. There is your calendars database. There is your contacts database. Uh And then, there is the iCloud sync database, which is stored elsewhere on the computer. And I believe notes also does this, but I could be wrong. So, it might wind up repopulating your passwords database with that which was in the iCloud database. Or, it might wind up repopulating what's in the iCloud data- the local copy of the iCloud database with what's in the passwords database, and then that might get pushed up to iCloud. [clears throat] So, if you wind up deleting something or breaking the database, you might wind up with no passwords. That's something you want to avoid. So, I I would think that that would be my advice is, you know, work hard to avoid that. Um You can export >> my question? What could possibly go wrong? >> Yeah, exactly. Well, I mean, you know, the the the list is endless, but, you know, file In the passwords app, go to file, export all passwords to file would be the place I would start this process. >> Yeah. >> Any Any thoughts from either of you? >> Uh >> [sighs and gasps] >> He The one thing he mentioned that it was mostly going slow on this one machine. And then, he did note that the machine was a 2019 Intel MacBook Pro. So, I don't know what the RAM configuration on that is, but I I I wonder too if it's just an overly large password database, especially if he imported passwords from something else like a one password or LastPass or whatever was being used. And if just a simple go through and clean up like old password data might help cuz, you know, this is another one those areas of our lives where >> [laughter] >> you have that website that you put a password in from, you know, 2006 and it doesn't even exist anymore. Or, you know, like >> Yep. >> you got 50,000 passwords in your password database and you don't need 50,000 passwords anymore. >> Yeah. Yeah, I could see that working. Yeah. I mean >> know, I'm just wondering if it's slow cuz that's an old machine. It's still Intel. It's probably got a spinning drive. You know, it's like >> all the things. >> other factors that are causing it to be slow just on that one machine. >> I am You You may be right. I I I and and I'm certainly crazy. Uh however, I it's in scenarios like that where I have almost defaulted to But, we have the mode of But, we have the ability to know the answer. We don't have to guess. Right? And And And in this scenario, what that means is we can I mean, you could go yourself and look at the passwords database, right? It is a SQLite database. You can browse it with a SQLite browser. I I presume. I haven't tried it. I I'm I know there's some security in there. I don't know how it's secure, you know, but I'm sure there is. So, uh or you can have Claude do it. >> Right. >> Right? And so, like I don't know I I guess if I go back to the the the digging that I did with the contacts database, I made a lot of assumptions. I thought I had too many contacts. I cleaned out a bunch. Didn't make any difference, right? And that's when I started heading down this path of like, "Okay, well, what is it really?" And that's when Claude was like, "Oh, no, you don't have too many contacts. You just have hundreds of thousands of sync records." And I was like, "Well, I never would have stumbled onto that if I didn't look in the SQL light database. And even if I had, I'm not sure I would have known what I was seeing. You know, so like that that's that's one of those I don't know. It you know, in any given you but you may well be right that there's some limit of the passwords database. >> Uh Kiwi Bruce also points out I was under this impression as well. >> [laughter] >> Did Kiwi Graham change his name to Kiwi Bruce? If so, I love I applaud you so much. >> In the Discord chat, it's hilarious. >> [laughter] >> Exactly. Uh but I was just going to I was just going to play along, but and not really point it out. But uh he said presumably uh password is based on keychains, and I'm pretty sure it's a it's a new wrapper around uh keychain access. And I even went to launch keychain access, and it popped up a dialogue and said, "Use the new passwords." So, I think there is an interplay or some sort of relation between those two things, too. So, maybe worth exploring something related to keychain access at a lower you know, being at a low lower level. >> Yep. >> closer to the metal. So, that might be another avenue to explore. >> Yep. Yep. Yeah. >> Yeah. >> Fun. Yeah, I'd be curious I now I'm curious what's in those SQL light databases for passwords. Like, what is it if it if it's still really just using whatever the system keychain or the keychains in general were, you know, in their as their as its storage, what how, you know, what's what else is it storing? >> Well, I will once again then recommend the application base, which you can get if you have Setapp for free, which will open SQLite databases and you can just look at them. >> Yeah.