From: Mikel Astiz <mikel.astiz@xxxxxxxxxxxx> With BlueZ 5, if the remote device suspends the audio, the transport state will change to "idle" and the endpoint is not required to release the transport, since this could introduce race conditions. Therefore, ignore the call to pa_bluetooth_transport_release() if the transport is not acquired any more. --- src/modules/bluetooth/bluetooth-util.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/modules/bluetooth/bluetooth-util.c b/src/modules/bluetooth/bluetooth-util.c index 7723b4d..2d958d5 100644 --- a/src/modules/bluetooth/bluetooth-util.c +++ b/src/modules/bluetooth/bluetooth-util.c @@ -1532,6 +1532,9 @@ void pa_bluetooth_transport_release(pa_bluetooth_transport *t) { pa_assert_se(m = dbus_message_new_method_call(t->owner, t->path, "org.bluez.MediaTransport", "Release")); pa_assert_se(dbus_message_append_args(m, DBUS_TYPE_STRING, &accesstype, DBUS_TYPE_INVALID)); + } else if (t->state <= PA_BLUETOOTH_TRANSPORT_STATE_IDLE) { + pa_log_info("Transport %s auto-released by BlueZ or already released", t->path); + return; } else { pa_assert(t->device->discovery->version == BLUEZ_VERSION_5); pa_assert_se(m = dbus_message_new_method_call(t->owner, t->path, "org.bluez.MediaTransport1", "Release")); -- 1.8.1.4