да баг, у них получается так, первый финишед прилетает для реального ответа(и мы вправе делать deleteLater), если же в этом цикле мы еще сделаем дисконнект клиенту, финишед прилетит еще раз, с ошибкой Абортед. Я вылетал с сигфолтом, потому что я делал reply = nullptr в лямбде, а он заходил в нее второй раз!. теперь приходится делать обнуление только когда прилетит сигнал destroyed. Но лямбда для обработки ответа вызывается два раза (тут ошибка), но я не вылетаю.
Вот дисконент делать непосредственно в слоте финишид не есть правильно, скорее всего ошибка абортед и прилетает из-за этого что репли еще до конца не завершился пока не отработал его слот.
В доках нотис про то что репли удалять в финишед нельзя, и юзать надо deleteLater не случаен, он как раз для того что бы дождаться полного завершения работы слота и всех потрохов репли.
Дисконект тоже по сути убивает текущий репли.
С QNetworkReply скорее всего тоже будет такое же поведение