Error: Blynk authentication failed, connection closed

When started, Blynk works OK and sends the values to the app, but after about 5 minutes, disconnects from the Blynk server and displays as stated on the topic title. I added a sleep command at the end and also opened and closed the Solar Charge Controller’s connection after every write statement, just to make sure that the data will not overwhelm the server. Any ideas?

import sys
sys.path.append ("/home/pi/blynk/blynk-library/blynk-library-python")
sys.path.append ("/home/pi/pymodbus")

import BlynkLib
import time



from pymodbus.client.sync import ModbusSerialClient as ModbusClient
modbus_timeout =.1

client = ModbusClient(method = "rtu", port = "/dev/ttyUSB0" , baudrate = 115200,timeout=1)                   
client.connect()



BLYNK_AUTH = "xxxxxxxxxxxxxxxxxxxx"

blynk = BlynkLib.Blynk(BLYNK_AUTH)

# Register virtual pin handler
# Register virtual pin handler



@blynk.VIRTUAL_READ(2)
def v2_read_handler():
    # This widget will show Solar Watts..
    
    #client.connect()
    result = client.read_input_registers(0x3102,1,unit=1)
    swatts=float(result.registers[0]/100.0)
    blynk.virtual_write(2, swatts)

@blynk.VIRTUAL_READ(1)
def v1_read_handler():
    # This widget will show solar voltage..
    
    #client.connect()
    result = client.read_input_registers(0x3100,1,unit=1)
    svoltage=float(result.registers[0]/100.0)
    blynk.virtual_write(1, svoltage)

@blynk.VIRTUAL_READ(8)
def v8_read_handler():
    # This widget will show Load Watts..
    
    #client.connect()
    result = client.read_input_registers(0x310E,1,unit=1)
    lwatts=float(result.registers[0]/100.0)
    blynk.virtual_write(8, lwatts)

@blynk.VIRTUAL_READ(9)
def v9_read_handler():
    # This widget will show Load Amps..
    
    client.connect()
    result = client.read_input_registers(0x310D,1,unit=1)
    lamps=float(result.registers[0]/100.0)
    blynk.virtual_write(9, lamps)
    client.close()

@blynk.VIRTUAL_READ(7)
def v7_read_handler():
    # This widget will show Battery SOC..

    client.connect()
    result = client.read_input_registers(0x311A,1,unit=1)
    bsoc=float(result.registers[0]/100.0)
    if bsoc < 75:
        blynk.notify("Battery level is below 75%")
    client.close()

    blynk.virtual_write(7, bsoc)

@blynk.VIRTUAL_READ(6)
def v6_read_handler():
    # This widget will show battery volts..
    
    client.connect()
    result = client.read_input_registers(0x310C,1,unit=1)
    bvolts=float(result.registers[0]/100.0)
    blynk.virtual_write(6, bvolts)
    client.close()

@blynk.VIRTUAL_READ(4)
def v4_read_handler():
    # This widget will show total watts generated..
    
    client.connect()
    result = client.read_input_registers(0x330C,1,unit=1)
    twatts=float(result.registers[0]/100.0)
    blynk.virtual_write(4, twatts)
    client.close()

@blynk.VIRTUAL_READ(3)
def v3_read_handler():
    # This widget will show solar amps..
    
    client.connect()
    result = client.read_input_registers(0x3101,1,unit=1)
    samps=float(result.registers[0]/100.0)
    blynk.virtual_write(3, samps)
    client.close()

@blynk.VIRTUAL_READ(5)
def v5_read_handler():
    # This widget will show charging amps..
    
    client.connect()
    result = client.read_input_registers(0x3105,1,unit=1)
    camps=float(result.registers[0]/100.0)
    blynk.virtual_write(5, camps)
    client.close()


@blynk.VIRTUAL_READ(10)
def v10_read_handler():
    # This widget will show watts used today..
    
    client.connect()
    result = client.read_input_registers(0x3304,1,unit=1)
    usedtoday=float(result.registers[0]*10)
    blynk.virtual_write(10, usedtoday)
    client.close()
time.sleep(3)
    

blynk.run()