It looks like the data you are sending for the write request is different sizes/lengths between the two logs; Is it supposed to be different sizes? (I would expect you to be testing uploading the same image from each phone IOS test...)
If the OTA bootloader is expecting a full flash row, but is only receiving the x-number of bytes, then it could be waiting for more data.
It looks like the bootloader is being stopped by the phone after ~8 seconds, I would assume it is you clicking the stop button.
Try getting the write request to be the same length/data and go from there
The data source are the same and we did not click on stop button. We just did everything the same in iOS 8,9,10,11. But we can do the update in iOS 8,11 but not 9,10.
We have implemented the OTA function with the source code provided in the Cypress web site, and we found the OTA function can not be executed in iOS 9 and iOS 10, and then we used the official CYSMART app to do counter checking with the OTA function, and found it is the similar problem in iOS 9 and iOS 10 with CYSMART app. we have used the same firmware application file, which is can do OTA successfully in iOS 8 and 11 either our customer APP or CYSMART APP, but failure with iOS 9 and iOS 10.
And above screen shot of the log messages of failure and success are come from CYSMART APP. And we certain not to press STOP button to stop the OTA process.