fastboot works, adb doesn't I picked up a second-hand Motorola Moto G (2nd gen) device. The model is technically XT1064 (Titan). 

On my Windows machine, I'm sometimes able to see an error message when I power down the phone stating that the USB device was unrecognized (Device Descriptor Request Failed).

After days of trying, I've yet to have it show up in adb. But it works just fine if I boot into the bootloader and run fastboot commands!

I've tried all of the "easy" things people recommend:


enabling USB debugging under Developer Options
different USB cables (although since fastboot works fine, that implies the cable is also fine)
different computers (tried a Mac, a Windows 10 machine, and a Windows Vista laptop)
adb kill-server followed by adb devices
various adb versions (Android SDK platform tools and Universal ADB driver)
manually uninstalling Windows drivers
force installing drivers (doesn't work, since the device doesn't make it past the device descriptor request so Windows won't allow drivers to be installed)
installing the Universal ADB driver
re-flashing the device (tried stock Marshmallow, stock KitKat, and Lineage OS)


I'm frustrated by the process because fastboot works just fine. That's how I've flashed the separate ROMs on there. 

If this were a hardware issue with USB, why would it be that fastboot operates correctly but adb does not? 

Also, if it's a hardware issue, what physical part would be the problem? It seems unlikely to be the USB port itself (again, because fastboot works just fine). Is there some kind of USB controller in the phone that could be the issue? Since the device is pretty useless to me unless adb works, I'd entertain the idea of trying to solder in a new part to fix the problem if I could!
You may need to enable USB Debugging enabled

To enable follow these steps:


Open settings  
Open Info
Find the Build Number and tap on it alot until it says You are now a developer!
Exit Info
Open Developer options
Tap on USB debugging
Tap on OK


Notes:


In 4.1.x and before skip steps 2-4
In 2.2.x and before goto Settings->Applications->Development->USB debugging