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.

macOShardwareProcessesbluetoothTerminalDiagnosticsMedium risk
Run `sudo killall bluetoothd` in Terminal to restart the Bluetooth daemon, then reconnect the device.

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

?The device appears in Bluetooth settings as paired, but clicking connect does nothing, it drops immediately after connecting, or Bluetooth settings itself feels unresponsive.

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.

Command
$ system_profiler SPBluetoothDataType

Toggle 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.

macOSToggle Bluetooth Power with blueutilLow riskStep 2Optional

Turn Bluetooth on or off from the macOS command line using blueutil.

Command
$ blueutil --power toggle
▾ Undo
Undo
$ blueutil --power toggle

Restart 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.

Command
$ sudo killall bluetoothd

Confirm 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.

Command
$ system_profiler SPBluetoothDataType
!Restarting the Bluetooth daemon briefly disconnects all Bluetooth devices, including wireless keyboards and mice. Have a wired backup or do this from a laptop's built-in keyboard and trackpad.

How 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.

Undo everything
$ blueutil --power toggle

Review before running — some steps may not be independent.

Sources

Last verified: 2026-09-21

Related guides