## Verified ESP8266 WiFi Event Behavior **Test Setup:** - D1 Mini (ESP-12F) - Arduino Core 3.1.2 - 50+ reboot cycles **Reliable:** ✅ `onStationModeGotIP` (when stored statically) **Broken:** ❌ `onStationModeDisconnected` (fails after 1st trigger/ESP.reboot) **Test Code:** ## Verified ESP8266 WiFi Event Behavior **Test Setup:** - D1 Mini (ESP-12F) - Arduino Core 3.1.2 - 50+ reboot cycles **Reliable:** ✅ `onStationModeGotIP` (when stored statically) **Broken:** ❌ `onStationModeDisconnected` (fails after 1st trigger) **Full Test Code:** // ===== WiFi Event Handlers ===== // void onConnected(const WiFiEventStationModeGotIP& event) { //Serial.println("WiFi connected!"); Serial.printf("Wifi connected. IP: %s \n", WiFi.localIP().toString().c_str()); setmDNS(); digitalWrite(LED_BUILTIN, HIGH); // LED off (connected) } defined in setup() by: static WiFiEventHandler onGotIPHandler = WiFi.onStationModeGotIP(&onConnected); Do not rely on onStationModeDisconnected -> won't work on the second disconnection. Always use while (WiFi.status() != WL_CONNECTED){