Wifi issue since upgrading core

I have upgraded the arduino core to the latest stable version one week ago and since then it seems i cannot connect my esp32 to my local network.

Heres my plateformio.ini:

[env:seeed_xiao_esp32s3]
; platform = espressif32
platform = https://github.com/pioarduino/platform-espressif32/releases/download/stable/platform-espressif32.zip
board = seeed_xiao_esp32s3
lib_deps =

framework = arduino

monitor_speed = 115200

build_flags =

-D DEBUG=true

heres the function I’m using to connect:

bool initWifiConnection(const String p_ssid, const String p_password, const int timeout_ms)
{
    unsigned long startAttemptTime = millis();

    WiFi.mode(WIFI_STA);
    // WiFi.disconnect((true, true));
    // delay(1000);
    WiFi.begin(p_ssid, p_password);
    // WiFi.setAutoReconnect(true);
    do
    {
        int status = WiFi.status();
#if DEBUG
        Serial.println("Connecting to WiFi ...");
        Serial.println(String("WiFi Status = ") + WiFi.status());
        Serial.println("Time elapsed: " + String(millis() - startAttemptTime) + "ms");
        switch (status)
        {
        case WL_IDLE_STATUS:
            Serial.println("Idle");
            break;
        case WL_NO_SSID_AVAIL:
            Serial.println("SSID not found");
            break;
        case WL_SCAN_COMPLETED:
            Serial.println("Scan completed");
            break;
        case WL_CONNECT_FAILED:
            Serial.println("Connection failed");
            break;
        case WL_CONNECTION_LOST:
            Serial.println("Connection lost");
            break;
        case WL_DISCONNECTED:
            Serial.println("Disconnected");
            break;
        default:
            Serial.println("Status: " + String(status));
            break;
        }
#endif
        if (millis() - startAttemptTime > timeout_ms)
        {
#if DEBUG
            Serial.println("Connection timeout");
#endif
            return false;
        }
     } while (WiFi.status() != WL_CONNECTED);

#if DEBUG
    Serial.println();
    Serial.print("Connected to this ip adress : " + WiFi.localIP());
    Serial.println("The signal strength is = " + WiFi.RSSI());
#endif
    return true;
}

and the main condition:

  else if (valueReceived[0] == 'P')
          {

            std::string nVal = pCharacteristic->getValue().c_str();
            size_t len = nVal.length();
            std::string wifiCredentials = nVal.substr(2,len-2);
            size_t pos = wifiCredentials.find(',');
            std::string wifiSsid;
            std::string wifiPassword;
#if DEBUG
            Serial.println("wifiCredentials length is  : " + String(len));
            Serial.println("wifiCredentials are  : " + String(wifiCredentials.c_str()));
#endif
            if (pos != std::string::npos)
            {
              wifiSsid = wifiCredentials.substr(0,pos);
              wifiPassword = wifiCredentials.substr(pos+1,wifiCredentials.length() - pos);
#if DEBUG
              Serial.println("-------------------------------------");
              Serial.println("position of ',' is : " + String(pos));
              Serial.println("wifiName is : " + String(wifiSsid.c_str()));
              Serial.println("wifiPassword is : " + String(wifiPassword.c_str()));
              Serial.println("-------------------------------------");
#endif
            }

            String w = wifiSsid.c_str(); //! couldnt simply cast at connexion time
            String p = wifiPassword.c_str();
      
            initWifiConnection(w,p, 10000);

            newValueReceived = false;
          }

Maybe its not related to the new core and you guys can see what is my problem ? thank you :slight_smile: