Sparkfun Pro Micro cannot upload sketch: Bootloder Only COM port. Reset tried

I have a custom board based on the Sparkfun Pro Micro which is used in an underwater. Because the board spends most of it's time in the ocean it's potted and so I have only access to the Reset and USB pins through an underwater connector. The board has been working fine but on the last deployment I got it back and cannot upload any sketches, although during the deployment the board worked perfectly. I have read through a bunch of forum posts which detail similar issues but cannot seem to find an adequate solution.

The basic problem is this:

  1. The board appears as SparkFun Pro Micro Bootloader in device manager
  2. After around 15 seconds the device disappears (Sometimes it is registered as Unknown Device and sometimes not)
  3. I have tried the reset trick i.e. uploading a small sketch and hitting reset on upload but that has not worked.

The error message I get is as follows

avrdude: Version 6.3, compiled on Jan 17 2017 at 12:00:53
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.10.0_x86__mdqgnx93n4wtt\hardware\tools\avr/etc/avrdude.conf"

         Using Port                    : COM11
         Using Programmer              : avr109
         Overriding Baud Rate          : 57600
         AVR Part                      : ATmega32U4
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PA0
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom        65    20     4    0 no       1024    4      0  9000  9000 0x00 0x00
           flash         65     6   128    0 yes     32768  128    256  4500  4500 0x00 0x00
           lfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           lock           0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

         Programmer Type : butterfly
         Description     : Atmel AppNote AVR109 Boot Loader

         Connecting to programmer: .
Found programmer: Id = "CATERIN"; type = S
    Software Version = 1.0; No Hardware Version given.
Programmer supports auto addr increment.
Programmer supports buffered memory access with buffersize=128 bytes.

Programmer supports the following devices:
    Device code: 0x44

avrdude: devcode selected: 0x44
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% -0.00s

avrdude: Device signature = 0x1e9587 (probably m32u4)
avrdude: reading input file "C:\Users\jamie\AppData\Local\Temp\arduino_build_459745/Blink.ino.hex"
avrdude: writing flash (4126 bytes):

Writing | avrdude: ser_send(): write error: sorry no info avail
avrdude: ser_recv(): read error: The I/O operation has been aborted because of either a thread exit or an application request.


avrdude: butterfly_recv(): programmer is not responding
avrdude: error: programmer did not respond to command: write block
# ***failed;  
 ***failed;

A few notes:

  1. The sparkfun pro micro does not have a USB crystal
  2. The board is connected to a battery so constantly powered. This cannot be disconnected.
  3. Only USB +5V/GND/D+/D- and RESET pins are available.

I could burn the bootloader again but this will require digging the board out of potting compound which is risky and a lot of work. Plus I would like to understand where this problem might have come from.

So does anyone have any suggestions and/or could provide possible reasons for the error messages I'm receiving?

Thanks in advance for any help.