Arduino OTA Error Uploadin

I don't know if you can help me. I'm pulling my hair out how simple this seems and yet doesn't function. I have a ESP32WROOM devkit and I tried to use OTA by inserting into my sketch. Upload fails. I then upload the sample, only modifying the ssid and password fields. I then used a brand new ESP board. The OTA update fails after 5 periods (how it does .....____.....) with the super helpful error messsage "[ERROR] Error Uploading." and [how am I supposed to get a better dx of problem when it prints to serial port but I guess I could use a terminal program. Still it's just five categories of errors on that side.] I'd really like to update in situ becuase all the wires is confusing to my poor head.

Can you provide more details like the code and other things you used .Does the error have any exception error.

Here's a partial reply, the code as-is, thus i omitted it earlier. The terminal software cuts out whenever I upload. This won't help much either.

#include <WiFi.h>
#include <ESPmDNS.h>
#include <WiFiUdp.h>
#include <ArduinoOTA.h>

const char* ssid = "..........";
const char* password = "..........";

void setup() {
  Serial.begin(115200);
  Serial.println("Booting");
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  while (WiFi.waitForConnectResult() != WL_CONNECTED) {
    Serial.println("Connection Failed! Rebooting...");
    delay(5000);
    ESP.restart();
  }

  // Port defaults to 3232
  // ArduinoOTA.setPort(3232);

  // Hostname defaults to esp3232-[MAC]
  // ArduinoOTA.setHostname("myesp32");

  // No authentication by default
  // ArduinoOTA.setPassword("admin");

  // Password can be set with it's md5 value as well
  // MD5(admin) = 21232f297a57a5a743894a0e4a801fc3
  // ArduinoOTA.setPasswordHash("21232f297a57a5a743894a0e4a801fc3");

  ArduinoOTA
    .onStart([]() {
      String type;
      if (ArduinoOTA.getCommand() == U_FLASH)
        type = "sketch";
      else // U_SPIFFS
        type = "filesystem";

      // NOTE: if updating SPIFFS this would be the place to unmount SPIFFS using SPIFFS.end()
      Serial.println("Start updating " + type);
    })
    .onEnd([]() {
      Serial.println("\nEnd");
    })
    .onProgress([](unsigned int progress, unsigned int total) {
      Serial.printf("Progress: %u%%\r", (progress / (total / 100)));
    })
    .onError([](ota_error_t error) {
      Serial.printf("Error[%u]: ", error);
      if (error == OTA_AUTH_ERROR) Serial.println("Auth Failed");
      else if (error == OTA_BEGIN_ERROR) Serial.println("Begin Failed");
      else if (error == OTA_CONNECT_ERROR) Serial.println("Connect Failed");
      else if (error == OTA_RECEIVE_ERROR) Serial.println("Receive Failed");
      else if (error == OTA_END_ERROR) Serial.println("End Failed");
    });

  ArduinoOTA.begin();

  Serial.println("Ready");
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());
}

void loop() {
  ArduinoOTA.handle();
}

Oh and here is what the Arduinio terminal put out:

Sending invitation to 192.168.1.222 
Uploading.....
21:26:08 [ERROR]: Error Uploading
21:26:08 [ERROR]: Error Uploading

You can also check if your board is one of the "Verified ESP32 Boards Supporting OTA" at Over-The-Air (OTA)

And that works over a wired connection initially right.
after that you need to give the ESP32 a hard reset !
Then you select the port to the IP address (which you did, or at least i guess you did 192.168.1.222 is not a very common IP address to be assigned DHCP)

Eh yeah, well with OTA upload it doesn't do the waiting thing like that so now you have confused me a little.

So anyway, first shows us the exact board you have.

Upload the basic example to it. (over usb)

After upload, Hard reset the ESP !

show us the result in the Serial monitor after that reset.

Then switch port and try to upload again that same example.