Multiple VL53L5CX sensor modules in a single i2c bus freezes

I am using the Example 9 Code (Two Sensors.ino) from Arduino Library for SparkFun Qwiic ToF Imager - VL53L5CX. The sensor runs fine normally, but when I reset the ESP32-S3, the I2C bus freezes.

I have attached the Initialization Part of Tofs.

// --------- I2C Initialization ---------

Wire.begin(); // Start first I2C bus

Wire.setClock(400000); // Set fast speed for sensors

WIRE_PORT_IMU.begin(35,36); // Start second I2C for IMU

WIRE_PORT_IMU.setClock(400000); // Set medium speed for IMU

// --------- ToF Sensor Initialization ---------

// Reset sequence for sensor 1

pinMode(sensorReset2, OUTPUT); // Set sensor 2 reset pin

digitalWrite(sensorReset2, HIGH); // Hold sensor 2 in reset

pinMode(sensorReset1, OUTPUT); // Set sensor 1 reset pin

digitalWrite(sensorReset1, HIGH); // Reset sensor 1

delay(100); // Wait 100ms

digitalWrite(sensorReset1, LOW); // Release sensor 1

delay(500); // Wait 100ms

// Initialize sensor 1 with custom address

SERIAL_PORT.println(“Initializing ToF Sensor 1”);

if (!myImager1.begin()) { // Try to start sensor 1

*SERIAL_PORT*.*println*("Sensor 1 not found. Freezing...");

while (1);                          *// Stop if failed*

}

myImager1.setAddress(sensorAddress2); // Change sensor 1 address

// Release and initialize sensor 2

digitalWrite(sensorReset2, LOW); // Release sensor 2

delay(500); // Wait 100ms

SERIAL_PORT.println(“Initializing ToF Sensor 2”);

if (!myImager2.begin()) { // Try to start sensor 2

*SERIAL_PORT*.*println*("Sensor 2 not found. Freezing...");

while (1);                          *// Stop if failed*

}

// Configure both sensors

myImager1.setResolution(8 * 8); // Set 8x8 grid

myImager2.setResolution(8 * 8); // Set 8x8 grid

imageResolution = myImager1.getResolution(); // Get resolution

imageWidth = sqrt(imageResolution); // Calculate width

myImager1.setRangingFrequency(15); // Set 15Hz update rate

myImager2.setRangingFrequency(15); // Set 15Hz update rate

myImager1.startRanging(); // Start measuring

myImager2.startRanging(); // Start measuring

// --------- IMU Initialization ---------

bool imuInitialized = false; // IMU start flag

while (!imuInitialized) { // Keep trying until IMU starts

myICM.*begin*(*WIRE_PORT_IMU*, *AD0_VAL*);  *// Try to start IMU*

*SERIAL_PORT*.*print*("IMU Init: ");    *// Print status*

*SERIAL_PORT*.*println*(myICM.*statusString*());



if (myICM.status *!=* ICM_20948_Stat_Ok) {  *// If failed*

  *SERIAL_PORT*.*println*("Retrying IMU..."); *// Print retry message*

  *delay*(500);                       *// Wait 500ms*

} else {

  imuInitialized = true;            *// Set flag if success*

}

}

Does that sensor2reset HIGH in the first block need to be in the second?