Arduino MEGA - Upload Sketch Error: Timing out - SOLVED

Hi everyone. I'm new to the forum but not to Arduino per se. I've never encountered an upload problem before but at the same time I have never had a project that required the Mega.

Problem: It seems my Mega is timing out during uploading but I can't seem to find why it's happening.

EDIT:
I kept searching the forums and found a post saying that we should be wary of using USB3.0 ports for uploads as there are supposed issues with USB3.0. I found this odd because I never encountered an error while flashing UNO, Nano and NodeMCU but I tried it and changing the port from USB3.0 to USB2.0 SOLVED this issue and allowed me to upload my sketch.

I was going to delete this post but I find others might encounter this issue so I will leave it up to the mods to decide if its unecessary. Thank you and sorry for the inconvenience.

Original Post Continued:
Things I have already tried:

  1. At first, I thought it was the sketch size (12% of capacity), so I tried uploading blink example, but it also caused an upload error.

  2. Then I tried searching these forums (and google) - Some people had a "similar" problem, but their solutions haven't proven to do anything in this case.

  3. Lastly, I tried the loopback test - It seems the loopback test didn't work. For reference this is the test I followed. Loop-Back Test Instructions - Installation & Troubleshooting - Arduino Forum

I attached the error message and would appreciate any help and/or orientation with how to solve this. Thank you all in advance.

P.S. I managed to flash my nano, uno and nodemcu esp8266 micros so It seems my PC might not be the problem.

Arduino: 1.8.13 (Windows 10), Board: "Arduino Mega or Mega 2560, ATmega2560 (Mega 2560)"

Sketch uses 1536 bytes (0%) of program storage space. Maximum is 253952 bytes.

Global variables use 9 bytes (0%) of dynamic memory, leaving 8183 bytes for local variables. Maximum is 8192 bytes.

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude -CC:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf -v -patmega2560 -cwiring -PCOM5 -b115200 -D -Uflash:w:C:\Users\kevin\AppData\Local\Temp\arduino_build_43749/Blink_Example.ino.hex:i 



avrdude: Version 6.3-20190619

         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/

         Copyright (c) 2007-2014 Joerg Wunsch



         System wide configuration file is "C:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf"



         Using Port                    : COM5

         Using Programmer              : wiring

         Overriding Baud Rate          : 115200

avrdude: ser_open(): can't set com-state for "\\.\COM5"

avrdude: ser_drain(): read error: The handle is invalid.




avrdude: ser_send(): write error: sorry no info avail

avrdude: stk500_send(): failed to send command to serial port

avrdude: ser_recv(): read error: The handle is invalid.




avrdude: stk500v2_ReceiveMessage(): timeout

avrdude: ser_send(): write error: sorry no info avail

avrdude: stk500_send(): failed to send command to serial port

avrdude: ser_recv(): read error: The handle is invalid.




avrdude: stk500v2_ReceiveMessage(): timeout

avrdude: ser_send(): write error: sorry no info avail

avrdude: stk500_send(): failed to send command to serial port

avrdude: ser_recv(): read error: The handle is invalid.




avrdude: stk500v2_ReceiveMessage(): timeout

avrdude: ser_send(): write error: sorry no info avail

avrdude: stk500_send(): failed to send command to serial port

avrdude: ser_recv(): read error: The handle is invalid.




avrdude: stk500v2_ReceiveMessage(): timeout

avrdude: ser_send(): write error: sorry no info avail

avrdude: stk500_send(): failed to send command to serial port

avrdude: ser_recv(): read error: The handle is invalid.




avrdude: stk500v2_ReceiveMessage(): timeout

avrdude: ser_send(): write error: sorry no info avail

avrdude: stk500_send(): failed to send command to serial port

avrdude: ser_recv(): read error: The handle is invalid.




avrdude: stk500v2_ReceiveMessage(): timeout

avrdude: stk500v2_getsync(): timeout communicating with programmer



avrdude done.  Thank you.



the selected serial port 

 does not exist or your board is not connected



This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.