Fixing the Chrome profile error on a Mac

Chrome opens, and before anything loads there is a dialog: your profile could not be opened correctly, some features may be unavailable, please check that the profile exists and that you have permission to read and write its contents. Clicking OK gets you into the browser, everything looks normal, and the same box appears again at the next launch. The tempting move is to ignore it, because nothing is obviously broken.

That is the wrong read. The dialog is not cosmetic. It says Chrome could not fully read or write the profile directory, which means some of what happens in this session will not survive a restart. Working out which part is failing, and in what order to intervene, is the difference between a two minute fix and losing a year of bookmarks.

What the message is actually reporting

A Chrome profile is a folder, not a database. On a Mac it lives under ~/Library/Application Support/Google/Chrome, with the first profile in a folder called Default and later ones in folders named Profile 1, Profile 2 and so on. Inside are a JSON settings file, several SQLite databases, and a pile of caches.

At launch Chrome reads that folder and writes a few things back immediately. The profile error appears when one of those operations fails. Three shapes of failure produce the same wording. The settings file may be truncated or malformed, usually after a force quit, a power loss or a disk that filled up mid write. One of the SQLite files may be corrupt, in which case the feature it backs stops working while the browser keeps running. Or the folder may be readable but not writable, which happens after restoring from a backup, migrating between machines, or running the browser once as another user.

There is a fourth cause that is easy to miss and increasingly common. If the profile folder is inside a cloud synced location, or if another Chromium based application has been pointed at the same user data directory, two processes end up fighting over the same files. Chrome guards against this with lock files, and stale locks left behind by a crash produce exactly this dialog. Those locks are the symlinks named SingletonLock, SingletonCookie and SingletonSocket in the user data root.

Know what each file holds before deleting anything

Most guides say to delete the profile folder. That works, in the sense that a demolished building no longer has a leak. The files are separable, and knowing which one holds what makes it possible to reset the broken part and keep everything else.

File in the profile folder What it holds What is lost if it is removed
Preferences Settings, startup pages, extension list, site permissions Settings return to defaults, extensions stay installed
Secure Preferences Signed copy of security sensitive settings Search engine and homepage reset
Bookmarks and Bookmarks.bak Bookmark tree, plus the previous version Bookmarks, unless sync or the .bak file has them
History Visited pages, typed addresses History and address bar suggestions
Web Data Autofill entries, saved cards, search engines Form autofill
Login Data Saved passwords, encrypted Passwords, unless synced to the account
Cookies Session cookies Signed out of every site
Local State (one level up) The list of all profiles, machine wide settings Profile names and order, not their contents

One detail matters for any recovery plan. Saved passwords are encrypted with a key stored in the login keychain, under an item named Chrome Safe Storage. Copying Login Data to a different Mac produces a file that cannot be decrypted there. Passwords come back through the Google account or not at all.

Work through the fixes in this order

Start with the step that costs nothing and stop as soon as the dialog is gone.

Quit Chrome properly, then check for survivors

Closing the last window is not quitting. Quit from the menu, then open Activity Monitor and search for Chrome. Helper processes that outlive the main one hold the lock files open, and the next launch reads a lock that points at a process that is gone. If any remain, quit them there, or run pkill -x "Google Chrome" in Terminal. Relaunch before doing anything else, because a stale lock is the most common single cause and it costs nothing to clear.

A restart of the Mac does the same job more thoroughly and takes less thinking, so if the machine has been awake for a fortnight, that is the cheaper version of this step. Either way, do it before editing any file, since half the reports that end up as long troubleshooting threads are resolved here and the rest of the ladder is only needed for the ones that are not.

Check free space and where the folder lives

A disk with no room left produces truncated writes, and truncated writes produce exactly this dialog. Run df -h / and look at the available column. Then confirm the profile folder is under ~/Library/Application Support and has not been moved into iCloud Drive, Dropbox or a Google Drive mirror. Sync clients replace files underneath a running application, which Chrome cannot tolerate. If the folder was moved, move it back and let Chrome recreate the lock files.

Move the settings file aside

With Chrome fully quit, rename Preferences inside the affected profile folder to Preferences.old. Chrome writes a fresh one at the next launch. Settings return to defaults, and bookmarks, history, passwords and cookies are untouched because they live in separate files. If the dialog is gone, the settings file was the problem, and the old copy can be deleted once a day or two has passed without incident.

Reset the database that fails quietly

If the dialog persists, the next candidate is Web Data. Rename it and its companion Web Data-journal, then relaunch. Autofill entries are lost and nothing else is. Repeat the same treatment on History if the message still appears. Renaming rather than deleting keeps a route back if the wrong file was picked.

Rebuild the profile list

When the dialog names a profile that no longer exists, or appears on every profile at once, the problem is one level up. Quit Chrome and rename Local State in the Chrome folder, not inside a profile. Chrome rebuilds the index at launch. Profile display names and their order are lost, and the folders themselves are untouched, so each profile can be renamed afterwards.

Start a clean profile and pull the data back

If nothing above works, create a new profile and sign in with the same Google account. Bookmarks, passwords, history, extensions and open tabs come back from sync. If the account was never signed in, copy Bookmarks and Bookmarks.bak out of the old folder first, then rename the old folder aside rather than deleting it, and keep it for a month.

Bookmarks.bak is worth a moment of attention, because it is the copy Chrome wrote at the previous successful launch. Both files are readable JSON, so a text editor will show whether the tree is intact before any import is attempted. Restoring it is a matter of quitting Chrome, removing the current Bookmarks, and renaming the backup to take its place. That only works once, since the next clean launch overwrites the backup, which is the reason to copy both files somewhere else before experimenting.

Why it keeps coming back

A profile that fails once and is repaired usually stays repaired. A profile that fails every few weeks is being broken by something structural, and there are only a handful of candidates worth checking.

Force quitting the browser is the most common. Chrome writes settings on a delay, so ending the process during a hang leaves a half written file. Full disks are second, and on a Mac the usable free space can be much smaller than the number Finder shows, because snapshots hold storage that has not been released yet. Backup and migration tools are third: restoring a home folder as a different user leaves files owned by an account that no longer exists, and the browser can read them but not replace them.

The last one is specific to people running several browser like applications. Any tool that launches Chromium with a custom --user-data-dir, including some site specific browsers and automation setups, will corrupt a profile if it is ever pointed at the folder Chrome itself is using. Check the launch arguments of anything that opens web content on the machine before blaming the browser. Testing frameworks are a frequent offender here, because the default in several of them is to reuse the real profile so that logins are already present.

Extensions belong on the list too, though further down it than their reputation suggests. An extension cannot corrupt the settings file directly, but one that writes large amounts of data on every page load increases the chance of a bad write when the disk is under pressure. If the dialog started appearing within days of installing something, disabling it for a week is a cheap test. If it started after an operating system upgrade instead, the more likely explanation is a permissions change, and the ownership of the folder is worth checking with ls -ld before anything is deleted.

The risk nobody prices in

There is a structural point underneath the troubleshooting. When one profile holds every work account, a single corrupt file takes out mail, chat, documents and the project tracker at the same moment, usually at the start of a day. The recovery is not hard, but it lands on the whole day at once.

Splitting the work across separate environments changes the size of that failure. If each web app runs in its own window with its own storage, a broken settings file affects one service and the rest keep working while it is repaired. That containment is a side effect of the way an application that keeps each web app in its own window is built, rather than a feature anyone markets, and the same structure is what makes it possible to see which service is failing instead of seeing one browser icon. The way that separation is organised is described under Features, and whether the services in daily use are covered is answered by the list of supported apps.

The counterweight is honest: another application to maintain, another sign in, and a migration that takes an afternoon. Worth doing when the profile error has appeared more than once. Not worth doing on the strength of a single bad morning.

What to change first

Quit Chrome completely, clear any lingering processes, and relaunch before touching a single file, because stale locks explain more of these dialogs than corruption does. If the message returns, rename Preferences and work down the list above one file at a time. Then, if the same profile has now broken twice, look at splitting the accounts apart so the next failure only takes down one of them, which is the shape SpaceDeck is built around.

Frequently asked questions

Will deleting the Preferences file lose bookmarks or passwords?

No. Bookmarks live in Bookmarks, passwords in Login Data, and history in History, all of which are separate files in the same folder. Removing Preferences resets settings, startup pages and site permissions, and leaves the rest in place. Rename it rather than deleting it so it can be restored if the wrong file was chosen.

Can the profile error appear even though Chrome seems to work fine?

Yes, and that is the more dangerous version. The dialog means at least one read or write failed, so changes made in the session may not be saved when the browser closes. Treat a working browser that still shows the message as a warning that persistence is unreliable, not as a false alarm.

Does Chrome sync bring everything back if a new profile is created?

Sync restores bookmarks, history, passwords, extensions, open tabs and settings for an account that had sync switched on. It does not restore anything from a profile that was never signed in, and it does not restore local files such as downloads. Check what is enabled at the sync settings page before relying on it.

Is it safe to keep the Chrome folder in iCloud Drive or Dropbox for backup?

It is not. Sync clients replace files while the browser is holding them open, which is one of the reliable ways to produce this error and, over time, to corrupt SQLite databases. Back up with Time Machine or a tool that works at the disk level, and leave the folder where Chrome expects it.

Back to all posts