How can I clear the CoreBluetooth cache on MacOS?
Categories:
How to Clear the CoreBluetooth Cache on macOS

Learn effective methods to clear the CoreBluetooth cache on macOS, resolving common Bluetooth connectivity and device discovery issues.
CoreBluetooth is Apple's framework for interacting with Bluetooth Low Energy (BLE) devices on macOS. While generally robust, sometimes the underlying Bluetooth cache can become corrupted or outdated, leading to issues like devices not appearing, incorrect service/characteristic discovery, or persistent connection problems. Clearing this cache can often resolve these frustrating issues without requiring a full system restart. This article will guide you through several methods to achieve this.
Understanding the CoreBluetooth Cache
The CoreBluetooth framework maintains an internal cache of discovered BLE devices, their services, and characteristics. This caching mechanism is designed to speed up subsequent connections and reduce redundant scanning. However, if a device changes its advertised services, or if the cache somehow gets corrupted, macOS might continue to present outdated information or fail to discover devices correctly. This can be particularly problematic during development or when working with new or frequently reconfigured BLE peripherals.
flowchart TD A[Bluetooth Device Advertises] --> B{macOS CoreBluetooth Scans} B --> C{Cache Entry Exists?} C -- Yes --> D[Use Cached Data] C -- No --> E[Discover Services/Characteristics] E --> F[Cache New Data] D --> G[Connect/Interact] F --> G G --> H{Issue Encountered?} H -- Yes --> I[Clear CoreBluetooth Cache] I --> B
CoreBluetooth Caching Workflow and Cache Clearing Trigger
Method 1: Restarting Bluetooth Module via Debug Menu
The simplest and often most effective way to clear the CoreBluetooth cache is by restarting the Bluetooth module itself. macOS provides a hidden debug menu for the Bluetooth icon in the menu bar that offers this functionality. This method is non-destructive and usually resolves most caching issues.
1. Enable Bluetooth Menu Bar Icon
Go to System Settings > Bluetooth and ensure 'Show Bluetooth in menu bar' is enabled. This will place the Bluetooth icon in your macOS menu bar.
2. Access Debug Menu
Hold down the Shift
and Option
(Alt) keys, then click the Bluetooth icon in the menu bar. This will reveal a hidden 'Debug' submenu.
3. Reset Bluetooth Module
From the 'Debug' submenu, select 'Reset the Bluetooth module'. This action will temporarily disable and then re-enable your Mac's Bluetooth, effectively clearing its internal cache.
4. Remove All Devices (Optional but Recommended)
For a more thorough reset, especially if you're having trouble with a specific device, you can also select 'Remove all devices' from the 'Debug' menu. Be aware that this will require you to re-pair all your Bluetooth peripherals.
Method 2: Deleting Bluetooth Preference Files
If the debug menu method doesn't fully resolve the issue, the problem might lie in corrupted Bluetooth preference files. Deleting these files forces macOS to recreate them, often leading to a clean slate for Bluetooth operations. This method is more aggressive as it will require re-pairing all your Bluetooth devices.
1. Disable Bluetooth
Turn off Bluetooth from the menu bar icon or System Settings to prevent macOS from immediately recreating the files you're about to delete.
2. Open Finder and Go to Folder
Open Finder, then from the menu bar, select 'Go' > 'Go to Folder...' (or press Shift + Command + G
).
3. Navigate to Preferences Directory
In the 'Go to Folder' dialog, type /Library/Preferences/
and press Go
.
4. Delete Bluetooth Preference Files
Locate and delete the following files (if they exist):
com.apple.Bluetooth.plist
com.apple.Bluetooth.plist.lockfile
Also, navigate to ~/Library/Preferences/ByHost/
and delete any files that start with com.apple.Bluetooth.XXXX.plist
(where XXXX is a hexadecimal string).
5. Restart Your Mac
Restart your macOS device. This is crucial as it ensures the system fully reinitializes Bluetooth with fresh preference files.
6. Re-enable Bluetooth and Re-pair Devices
After restarting, re-enable Bluetooth and re-pair all your devices. This process should now be working with a completely cleared cache.
Method 3: Using the Command Line (Advanced)
For users comfortable with the terminal, there are command-line utilities that can interact with Bluetooth services. While less common for cache clearing, stopping and starting the Bluetooth daemon can sometimes achieve a similar effect to resetting the module.
sudo launchctl unload /System/Library/LaunchDaemons/com.apple.blued.plist
sudo launchctl load /System/Library/LaunchDaemons/com.apple.blued.plist
Commands to unload and load the Bluetooth daemon (blued
).
These commands unload and then load the blued
daemon, which is the core Bluetooth service on macOS. This effectively restarts the service, which can help clear transient issues. You will need administrator privileges (sudo
) to execute these commands.