M5StickCPlus OTA Failing in Update loop



  • Having been successful for months with the OTA updates with all my ESP devices, all of a sudden the loop in the library Updater.cpp is failing (found via printouts).

    file: ~/Library/Arduino15/packages/m5stack/hardware/esp32/2.0.4/libraries/Update/src/Updater.cpp

    I successfully retrieve a 'bin' file from a web location (over http) and then get to the update loop.

    Then the following never gets all the bits:

     size_t written = Update.writeStream(_client);
    

    Inside the while loop of writeStream, there is a call:

    toRead = data.readBytes(_buffer + _bufferLen, bytesToRead).

    While sometimes reading 4096 bytes, eventually this returns 0 and after a number of times (300 in code) it quits with an UPDATE_ERROR_STREAM (#6) error. Sometimes it return 0 but after a couple tries works.

    Anyone have any ideas on what might be the issue? Why would the readBytes in general not work?

    Is this readBytes grabbing bits from the internet or from the binary already downloaded?

    thanks.