Thanks for your thoughts and the links. I was already looking at some of those files especially avcDaemon/push.c.
Couple of things I have found so far that lead me to scratch my head:
Once a record has successfully pushed or queued then the record is reset. See avcDaemon/timeseriesData.c line #1597
It doesn’t matter if a push handler is called with a status of LE_AVDATA_PUSH_SUCCESS or LE_AVDATA_PUSH_FAILED the item on the push linked list is removed from the list and the data is lost at that point. See avcDaemon/push.c lines #105 to #122.
Perhaps you can review and see if you agree with my assessment.
That does seem accurate based on the code (though it may be good to review with the authors since it’s a complex project with lots of dependencies). If that analysis is correct, perhaps the code for avcService should be changed to remove data from the linked list after we receive the ACK.
Alternatively you could maintain your own list/queue in another app and only delete them after receiving LE_AVDATA_PUSH_SUCCESS. This seems like a ton of abstraction though, so it’s probably better to just submit a patch to avcService.