That is weird. Can you modify the function to
void updateFromFS(fs::FS &fs) {
File updateBin = fs.open("/update.bin");
M5.Lcd.println("Update file has size " + String(updateBin.size()));
delay(1000);
/*... */
to see if the file size is also seen correctly in the updateFromFS
function? If yes, the if(..)
check must be wrong, although it looks absolutely right through the overloaded bool()
operator of the file object.