Fix a Bluetooth device that will not connect on macOS
Diagnose a stubborn Bluetooth device with system_profiler, then power-cycle Bluetooth and restart bluetoothd to get it connected again.
What this covers
When a Bluetooth device shows as paired but refuses to connect, the culprit is usually a hung Bluetooth stack rather than the device itself. This guide walks from diagnosis to fix to verification, entirely from the Terminal.
Symptom
Check what Bluetooth can see
Before changing anything, find out whether macOS still sees your Bluetooth controller and the device in question. This report shows the controller state and every paired device, including whether each one is currently connected. If your device appears as paired but 'Not Connected', the problem is at the connection layer; if the controller itself looks absent or stuck, the daemon may need a restart.
Use system_profiler with the SPBluetoothDataType to print a detailed report of your Mac's Bluetooth controller and every connected Bluetooth device.
$ system_profiler SPBluetoothDataTypeToggle Bluetooth off and on
A quick power cycle often clears a stuck Bluetooth radio. Toggle it off, wait a few seconds, then toggle it back on. This step is optional — if the toggle does not resolve the connection, move on to restarting the Bluetooth daemon. The toggle command is self-reversing, so running it twice returns Bluetooth to its original state.
Turn Bluetooth on or off from the macOS command line using blueutil.
$ blueutil --power toggle▾ Undo
$ blueutil --power toggleRestart the Bluetooth daemon
When devices stay stuck as 'Not Connected' even after a power cycle, the bluetoothd process itself is usually hung. Killing it makes launchd relaunch a fresh instance, which rebuilds the connection manager and typically lets stubborn devices pair and connect again. This is the standard fix for a Bluetooth stack that has stopped responding.
Kill the bluetoothd process so launchd relaunches it, which often fixes Bluetooth devices that refuse to connect.
$ sudo killall bluetoothdConfirm the device now shows connected
Run the Bluetooth report again and look for your device. Success looks like the device listed with its status showing connected — and for keyboards, mice, and headphones, you can also confirm by checking that input or audio works. The same report often includes battery levels, which doubles as a sanity check that the device has enough charge to hold a connection.
One command lists every paired Bluetooth device, whether it is connected, and often its battery level.
$ system_profiler SPBluetoothDataTypeHow to confirm it worked
Re-run the Bluetooth device report and confirm the device now shows as connected; for audio or input devices, also confirm they actually work.
Undo everything
Every command above can be reverted. Run these in order to undo all of it.
$ blueutil --power toggleReview before running — some steps may not be independent.
Sources
- SYSTEM_PROFILER Command: Report macOS system hardware and software configurationEvidence: Report for one (or several) Data Types: system_profiler [-xml] dataType1 ... dataTypeN
- GitHub - toy/blueutil: CLI for bluetooth on OSX: power, discoverable state, list, inquire devices, connect, info, … · GitHubEvidence: -p, --power STATE set power state ... STATE can be one of: 1, on, 0, off, toggle ... CLI for bluetooth on OSX: power, discoverable state, list, inquire devices, connect, info, …
Last verified: 2026-09-21
Related guides
Step-by-step Terminal guide to fix AirDrop on macOS: check awdl0, restart sharingd, bounce the wireless interface, and verify Bluetooth is healthy.
Find out whether macOS detects your external monitor, re-apply a working display mode with displayplacer, and verify the connection is healthy.
A terminal-first walkthrough to find what is holding your external disk open on macOS and eject it safely, from quitting apps to forcing an unmount.