Ever lasting issue

Gees, if one google "arduino cannot up load sketch", you see tons of questions like "avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x00", No one seem to come up with a solid answer. This hapened to me recently. I have a trusting Uno and a trusting Nano. They were working fine for the longest time.

I was using IDE 1.8.6, it was stable for a long time. But one day it stops upload my sketch. I Tried it on my Mac, Linxus, and Windows, with Uno, Nano, Mega, None of them upload except for the Mega. the same error keeps popping up. I downgrade to 1.8.5,
Result is the same.

Finally, I apt get a very old version on Linux. It is IDE 1.0.4, that seems to work, I still have to test it more before I can be absolutely sure.

Why is this upload so unstable. Arduino has been around for over 10 years now, one would think they would it ironed out by now.

No one seem to come up with a solid answer.

That's because it's a catch-all generic error message, essentially equivalent to "unexpected response from user." It doesn't have a single cause - LOTS of different problems can cause the same message.

(For example, FTDI USB/Serial chips were/are used on many Arduino Nanos. Some of the FTDI chips were apparently counterfeits. Back in 2014 or so, A Windows Update caused a newer version of the FTDI driver software to be installed, and that driver would detect and BRICK counterfeit chips. This would probably cause this error. Users and even manufacturers had no idea that their chips were counterfeit; but a bunch of "Nanos" suddenly stopped working.)