Skip to content

[Linux] AirPods audio stuck on "off" profile when the card lookup fails at connect #795

Description

@CFSBR

App version

v1.0.0-rc1

Variant

Rust rewrite (linux-rust branch)

Distro and version

Parrot OS (debian 13)

Desktop environment / compositor

KDE 6

Install method (only official sources)

Built from source (nix or otherwise)

AirPods model

AirPods Pro 3

What happened

Describe the bug
After a reconnect, my AirPods Pro 3 disappeared from the system's audio outputs. The bluez card existed in PipeWire, but its active profile was off and LibrePods never switched it back.

Cause
MediaController::setConnectedDeviceMacAddress() resolves the card name (getAudioDeviceName()) only once. If the bluez_card.* doesn't exist yet at that moment, m_deviceOutputName stays empty for the whole session, and both activateA2dpProfile() and removeAudioOutputDevice() return early. If ear detection had already set the profile to off, the AirPods are left without a sink until the app is restarted. This is still the case on current main (C++ client in linux/).

Logs and stderr

Logs (MAC redacted)

Connecting to device: "AirPods Pro 3"
No matching Bluetooth card found for MAC address: "XX_XX_XX_XX_XX_XX"
Device output name set to: ""
Connected device MAC address or output name is empty, cannot remove audio output device   (x40)

pactl list cards → Active Profile: off. Setting a2dp-sink manually restores the sink.

Additional context

No response

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workinglinuxIssues with the Linux program

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions