Hello, I have just found the same problem even if [GATT] Cache = no is set in main.conf. It is simply the same because the device is held as temporary device. Additionally the method "dev_property_get_uuids" in device.c only returns UUIDs of the cached (temporary hold) device because dev->le_state.svc_resolved is not turned to false on disconnect. So if a disconnected device advertised an new UUID, you never get notified about it through dbus. Through DBus device node I would expect to get both UUID lists. The cached ones and also the advertised ones. Actually I just merge the two lists and provide the result to DBus device->UUIDs request. Hope you can change this. Thanks. Thomas -----Ursprüngliche Nachricht----- Von: Luiz Augusto von Dentz [mailto:luiz.dentz@xxxxxxxxx] Gesendet: Donnerstag, 26. August 2021 00:13 An: David Lechner <david@xxxxxxxxxxxxxx> Cc: linux-bluetooth@xxxxxxxxxxxxxxx Betreff: Re: [PATCH BlueZ v2 1/2] device: clear eir_uuids list on disconnect Hi David, On Wed, Aug 25, 2021 at 9:54 AM David Lechner <david@xxxxxxxxxxxxxx> wrote: > > The eir_uuids list contains GATT service UUIDs from advertising data. > The device may advertise different UUIDs each time it is scanned and > connected, so the list needs to be cleared when the device disconnects. > > This partially fixes an issue where the UUIDs D-Bus property is empty > after scanning, connecting, disconnecting and scanning again when > [GATT] Cache = yes is set in main.conf. > > Issue: https://github.com/bluez/bluez/issues/192 > Signed-off-by: David Lechner <david@xxxxxxxxxxxxxx> > --- > src/device.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/src/device.c b/src/device.c index 807106812..53ef3e9a1 > 100644 > --- a/src/device.c > +++ b/src/device.c > @@ -3129,6 +3129,9 @@ void device_remove_connection(struct btd_device > *device, uint8_t bdaddr_type) > > device_update_last_seen(device, bdaddr_type); > > + g_slist_free_full(device->eir_uuids, g_free); > + device->eir_uuids = NULL; > + > g_dbus_emit_property_changed(dbus_conn, device->path, > DEVICE_INTERFACE, > "Connected"); > > -- > 2.25.1 Applied, thanks. -- Luiz Augusto von Dentz