Recently, I setup Ubuntu 22.04 on my new laptop. Everything work, except my bluetooth headphone. I have struggled to play any sound on my Sony WF1000XM3 for weeks even though my other bluetooth speaker works just fine ๐Ÿ˜ž

connected

Anytime I try to connect to my headphone, it appears to be connected, but I cannot hear the notification from my headphone. And in Sound settings, output devices or Pavulcontrol, my headphone didn’t show up either.

not-recognized

I searched for some solutions and tried reconfigure pulse for weeks but none of that work.

Went through some questions on askubuntu, this is the one helped me find my solution. https://askubuntu.com/questions/1305085/trouble-when-connecting-paired-bluetooth-headphones-on-ubuntu-20-04
The question wasn’t answered, but it gave me hints to try it myself.

And here is how I fixed it. First, I found the device MAC and unregistered it.

bluetoothctl
#devices
Device 14:3F:A6:3B:08:2E LE_WF-1000XM3
#remove 14:3F:A6:3B:08:2E
[CHG] Device 14:3F:A6:3B:08:2E ServicesResolved: no
Device has been removed

Start pairing on my headphone (touching 2 buds for a few seconds in my case).

#scan on
# pair 14:3F:A6:3B:08:2E                                       <<<
Attempting to pair with 14:3F:A6:3B:08:2E
[CHG] Device 14:3F:A6:3B:08:2E Connected: yes
[CHG] Device 14:3F:A6:3B:08:2E Modalias: usb:v054Cp0CE0d0312
[CHG] Device 14:3F:A6:3B:08:2E ServicesResolved: yes           <<<
[CHG] Device 14:3F:A6:3B:08:2E Paired: yes                     <<<
Pairing successful                                             
[CHG] Device 14:3F:A6:3B:08:2E ServicesResolved: no            <<<
[CHG] Device 14:3F:A6:3B:08:2E Connected: no                   <<<
# connect 14:3F:A6:3B:08:2E                                    <<<
Attempting to connect to 14:3F:A6:3B:08:2E
[CHG] Device 14:3F:A6:3B:08:2E Connected: yes         
Connection successful
[CHG] Device 14:3F:A6:3B:08:2E ServicesResolved: yes           <<<

Now my headphone can connect successfully. Sometimes, if it doesn’t log [CHG] Device <MAC> ServicesResolved: yes after a few seconds. Then I need to run connect command again until it is connected.