I have a FINAL SOLUTION
for this infamous, misterious, damned error.
I verified multiple times that one cause may be using the same USB port used for Arduino programming also for "something else" such as connecting an USB drive, card reader or what else.
right-click on Arduino UNO.inf and INSTALL it again, and do the same with FTDIBUS.INF (they're located in \drivers folder in Arduino IDE folder).
This will make your computer "forget" about the USB device and see again the Arduino.
I think this should be added in the error knowledge base for Arduino.