In that case, I will check again what can be wrong or confliting with Blynk OTA.
I will share the results of my analysis.
Just for the record, during the first implementation of Blynk OTA in our application, we concluded that interrupts were affecting the process. We will check again if anything new in 2.0.5 can now be affecting the process again…
BLYNK_WRITE(InternalPinOTA) {
//Stop all interrupts or process that can affect OTA
//
// do something
//
//Then begin OTA...
overTheAirURL = param.asString();
edgentTimer.setTimeout(2000L, [](){
// Start OTA
Blynk.logEvent("sys_ota", "OTA started");
// Disconnect, not to interfere with OTA process
Blynk.disconnect();
BlynkState::set(MODE_OTA_UPGRADE);
});
}