How to Clear the macOS CoreBluetooth Daemon Cache via Terminal

The CoreBluetooth Subsystem

Every time you connect your AirPods, a Magic Keyboard, a Bluetooth mouse, or utilize macOS Handoff to seamlessly copy text from your iPhone to your Mac, you are relying on the CoreBluetooth framework.

This system daemon manages the physical Bluetooth hardware radio, handles the encrypted pairing handshakes, and maintains a vast persistent cache of every Bluetooth Low Energy (BLE) device that has ever broadcasted in your vicinity. It uses this cache to instantly reconnect to trusted devices the moment they power on.

However, because the BLE spectrum is incredibly crowded, the CoreBluetooth cache can become overwhelmed and corrupted. The symptoms are unmistakable: Your Mac might refuse to turn Bluetooth on or off (the toggle switch grays out), your Magic Mouse might constantly disconnect every two minutes, or you might see a “Connection Rejected” error when trying to pair a brand new set of headphones. Restarting the Mac usually fails to fix this because the corrupted pairing database is permanently saved to the SSD. You must forcefully obliterate the CoreBluetooth daemon cache via the Terminal.

Locating the Bluetooth Caches

The CoreBluetooth database is an incredibly privileged system file. It is not stored in your user profile; it is stored deep in the global system Library, accessible only by the root user.

Purging the Cache via Terminal

You must use the Terminal with elevated (sudo) privileges to delete the preference files and forcefully restart the background daemon.

  1. Turn Bluetooth OFF (if the system allows it).
  2. Open the Terminal application.
  3. First, delete the primary Bluetooth property list file, which holds the MAC addresses and pairing keys of all known devices:
sudo rm -f /Library/Preferences/com.apple.Bluetooth.plist

Press Enter, type your Mac’s administrator password (the characters will remain invisible), and press Enter again.

  1. (Optional but recommended for macOS Monterey and older): Delete the user-specific Bluetooth controller cache:
sudo rm -f ~/Library/Preferences/ByHost/com.apple.Bluetooth.*.plist

Restarting the Bluetooth Daemon (blued / bluetoothd)

Deleting the physical files clears the SSD, but the corrupted state is still actively running in the Mac’s RAM.

You must forcefully terminate the background process responsible for the Bluetooth stack. In modern macOS versions (Big Sur, Monterey, Ventura, Sonoma), this daemon is named bluetoothd. In much older versions, it was named blued. We will issue kill commands for both to be safe.

sudo killall bluetoothd
sudo killall blued

The Hardware Initialization

The moment you execute the killall command, the macOS kernel will realize a critical system daemon has died. The launchd process will instantly respawn a fresh, uncorrupted instance of bluetoothd.

The new daemon will attempt to read the com.apple.Bluetooth.plist file, realize it has been deleted, and immediately poll the physical Bluetooth radio on the motherboard for a completely fresh hardware initialization.

You must now restart your Mac to finalize the process.

Upon rebooting, turn Bluetooth ON. You will need to re-pair all of your devices (AirPods, Magic Mouse, etc.), as the known-devices cache was intentionally wiped. However, the connection stability issues will be permanently resolved, and the Bluetooth toggle will respond instantly.

Get the best tech tips delivered straight to your inbox.

Join thousands of readers mastering Apple, Google, Microsoft, and Linux.