Hi Alain, > The gatt discovery proceedure simplification to discover all > characteristics at once has exposed a device side issue where some > device implementation reports orphaned characteristics. While this > technically shouldn't be allowed, some instances of this were observed > (namely on some Android phones). > > The fix is to simply skip over orphaned characteristics and continue > with everything else that is valid. > > This has been tested as part of the Android CTS tests against an > affected platform and was confirmed to have worked around the issue. > --- > > src/shared/gatt-client.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/src/shared/gatt-client.c b/src/shared/gatt-client.c > index 963ad619f..d604c77a3 100644 > --- a/src/shared/gatt-client.c > +++ b/src/shared/gatt-client.c > @@ -632,7 +632,10 @@ static bool discover_descs(struct discovery_op *op, bool *discovering) > util_debug(client->debug_callback, client->debug_data, > "Failed to insert characteristic at 0x%04x", > chrc_data->value_handle); > - goto failed; > + > + /* Skip over invalid characteristic */ > + free(chrc_data); > + continue; > } should we add a warning here? And I think it would be good to have a bit more verbose comment why this is done this way instead of aborting. Regards Marcel