Code works until pumpTimer.reset() happens multiple times in a row

So i’m running this code on a photon, and I think that if two or more instances of pumpTimer.reset() happen at the same time, Blynk disconnects then the photon disconnects. I’m not sure what I’m doing wrong here… any advice?

Also, if the pumpTimer.reset() never gets triggered, then the app will run indefinately…

#include "blynk/blynk.h"


char auth[] = "myauthgoeshere";
Timer writeTimer(1000, function);
Timer pumpTimer(10000, pumpOff);

WidgetLED wet_1(0);
WidgetLED dry_1(1);
WidgetLED wet_2(2);
WidgetLED dry_2(3);
WidgetLED wet_3(4); 
WidgetLED dry_3(5);
WidgetLED wet_4(6);
WidgetLED dry_4(7);


int ms1 = 1;
int ms2 = 2;
int ms3 = 3;
int ms4 = 4;


void setup() 
{

pinMode(7, OUTPUT);
Blynk.begin(auth);
writeTimer.start();

}

void loop() 
{

Blynk.run();

}


void function()
{

int mSensor1 = analogRead(ms1);
mSensor1 = map(mSensor1, 0, 4095, 0, 100);  

int mSensor2 = analogRead(ms2);
mSensor2 = map(mSensor2, 0, 4095, 0, 100);

int mSensor3 = analogRead(ms3);
mSensor3 = map(mSensor3, 0, 4095, 0, 100);  

int mSensor4 = analogRead(ms4);
mSensor4 = map(mSensor4, 0, 4095, 0, 100);

if (mSensor1 > 50)
{
  wet_1.on();
  dry_1.off();
}
else
{
  wet_1.off();
  dry_1.on();
  pumpOn();
}

if (mSensor2 > 50)
{
  wet_2.on();
  dry_2.off();
}
else
{
  wet_2.off();
  dry_2.on();
  pumpOn();
}

if (mSensor3 > 50)
{
  wet_3.on();
  dry_3.off();
}
else
{
  wet_3.off();
  dry_3.on();
  pumpOn();
}

if (mSensor4 > 50)
{
  wet_4.on();
  dry_4.off();
}
else
{
  wet_4.off();
  dry_4.on();
  pumpOn();
}

Blynk.virtualWrite(8, mSensor1);
Blynk.virtualWrite(9, mSensor2);
Blynk.virtualWrite(10, mSensor3);
Blynk.virtualWrite(11, mSensor4);

writeTimer.start();

}

void pumpOn()
{

digitalWrite(7, HIGH); // 12v relay controlling pump
pumpTimer.reset();

}

void pumpOff()
{

digitalWrite(7, LOW); // 12v relay controlling pump

}