Bluetooth connectivity issue

Not sure if this is an Ubuntu and/or Mate desktop issue so I’ll go and post this under this category and separate from the other Bluetooth thread so as not to hijack it.

My Ubuntu MATE 24.04.4 install sees all my Bluetooth devices and connects but sound only comes out of my JBL GO3 speaker. When I connect to my JBL FLIP5, JBL headsets or my Bose speaker sound only comes through the PC speakers even though those devices show as connected. I find it odd that only the GO3 works as expected.

Not really a major issue for me as my GO3 is what I use daily for music at my desk but still I wouldn’t mind finding out why the above is occurring.

2 Likes

Yeah so this is almost certainly not a MATE thing, it’s happening one layer down at the PulseAudio/PipeWire level, same stuff that runs under pretty much every Ubuntu flavor.

When a BT device connects, two separate things have to happen: it needs to negotiate the A2DP Sink profile (actual stereo audio) instead of HSP/HFP (basically phone call quality mono sound), and then something has to actually flip it to be the default output. Your GO3 working fine every time tells me both of those are happening correctly for it. The others connecting but not playing sound is a pretty classic sign one of those two steps is silently failing.

Things I’d check in order:

Pull up pavucontrol

sudo apt install pavucontrol

Connect the FLIP5 (or whichever), then go to the Configuration tab and look at what profile it’s sitting on. If it’s stuck on Off, or on HSP/HFP instead of A2DP Sink, that’s your answer right there.

Check where it’s actually routing Playback tab, play something, see what output it’s using. Sometimes the device connects fine but the system just doesn’t flip default output over to it, so it’s still dumping to your PC speakers even though the BT device shows connected.

Check what PipeWire/pactl thinks is going on

pactl list cards short
pactl list sinks short
pactl info | grep "Server Name"

That last one tells you if you’re actually on PipeWire under the hood. If it’s acting weird, restarting the stack sometimes clears it up:

systemctl --user restart pipewire pipewire-pulse wireplumber

Unpair and repair the problem devices Sounds dumb but this fixes it more than it should. Sometimes a device pairs and only ever offers HSP/HFP because of how the handshake went, and it just sticks that way until you nuke the pairing and start over. bluetoothctl remove <MAC>, then pair fresh.

My money’s on the FLIP5/headsets/Bose being parked on the wrong profile, or just not getting set as default sink automatically the way the GO3 is. If none of the above fixes it, post your pactl list cards short output, that’ll show all of us exactly what profiles each device is even offering and narrow it down fast.

4 Likes

Unfortunately all this will have to wait until Sunday as I’m out of town.

2 Likes

Hi @Itachixkurosaki,

This is such a good write-up, it deserves a place in the Articles & Guides section

4 Likes

thanks man since i’ve been gone from here i’ve been really into my home lab and also troubleshooting when I have my own problem and nothing helps learn you somethin like fixing your own stuff using youtube or forum posts to help troubleshoot(my Texan accent coming out)

3 Likes

Finally back home.

To be honest pavucontrol made things worse. To many options to deal with, I could get one speaker working and then the other wouldn’t work.

In the end I purged pavucontrol and just used Mate’s sound preferences and manually switched to the speaker I wanted under Output. Never had to do this before as the connected output device would just automatically be selected when bluetooth was active.

2 Likes

Glad you got it working, even if it took purging pavucontrol to get there. Honestly pavucontrol overwhelms everyone the first time, too many toggles that all fight each other.

One thing worth pointing out though: manually switching under Output isn’t really the fix, it’s more of a workaround. You’re doing by hand what the system used to do on its own. And the fact that it works at all tells me your stereo devices ARE offering proper A2DP and showing up as real outputs, they’re just not getting auto-selected when they connect. So this probably isn’t a codec problem after all, it’s an auto-switch problem.

If anyone wants the actual fix so you never have to touch the Output tab again, it’s a small WirePlumber setting that tells the system to move audio to a bluetooth device the moment it connects. One config file, one restart, done.

The command that confirms which situation you’re in is still this, run with a problem device connected:

pactl list cards short

That shows whether the device is sitting on a stereo profile or not, which is what decides whether it’s the auto-switch fix or the profile fix. But if manual switching under Output is good enough for your setup, no shame in leaving it there.

3 Likes

As of this morning all my speakers/headsets now auto connect. Not sure if the systemctl command @Itachixkurosaki posted was the solution as it did not help last evening but I did a system restart a few hours afterward for something completely unrelated so it’s possible a restart after running that command was necessary.

If this issue happens again I will revisit this thread and confirm yes/no if that is the solution and mark it so.

5 Likes