There are many suggestions all over the forums for why uploading to your Arduino fails with this error, but none of them helped me.
I eventually discovered that changing the baud rate from 57600 to 115200 cured the problem.
It's not clear why 57600 doesn't work. I assume it's an issue with the non-standard USB to serial converter on the Nano clone I'm using.
To change the upload baud rate you need to find (on your host PC) the folder "hardware/arduino/avr" in which you'll find a text file "boards.txt". Change the property "...upload.speed" for your board and programmer. In my case this meant changing line 147 from:
nano.menu.cpu.atmega328.upload.speed=57600
to:
nano.menu.cpu.atmega328.upload.speed=115200
Note that the text file in in Unix format (lines end in line feed, not carriage return / line feed) so you'll need to use an appropriate editor if you're on Windows.