Uploading first sketch works, subsequent uploads fail

When first talking to Mini Pro everything works. First sketch uploads and runs. BUT subsequent upload attempts error out.

Have tried on two different Mini Pros. Same results.

Running on Ubuntu. Port /dev/ttyUSB0 OK - seen and permissions are correct.

Error message:

Arduino: 1.6.12 (Linux), Board: "Arduino Pro or Pro Mini, ATmega328 (5V, 16 MHz)"

Sketch uses 444 bytes (1%) of program storage space. Maximum is 30,720 bytes.
Global variables use 9 bytes (0%) of dynamic memory, leaving 2,039 bytes for local variables. Maximum is 2,048 bytes.
/data/arduino/arduino-1.6.12/hardware/tools/avr/bin/avrdude -C/data/arduino/arduino-1.6.12/hardware/tools/avr/etc/avrdude.conf -v -patmega328p -carduino -P/dev/ttyUSB0 -b57600 -D -Uflash:w:/tmp/arduino_build_876010/pin-blink.ino.hex:i

avrdude: Version 6.3, compiled on Sep 12 2016 at 15:21:49
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch

System wide configuration file is "/data/arduino/arduino-1.6.12/hardware/tools/avr/etc/avrdude.conf"
User configuration file is "/home/maco/.avrduderc"
User configuration file does not exist or is not a regular file, skipping

Using Port : /dev/ttyUSB0
Using Programmer : arduino
Overriding Baud Rate : 57600
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00

What is the sketch you loaded doing?

You may need to Press & Hold reset, release it when the IDE shows "compiled xxx of 32xxx bytes".
Release timing can be easier to find if you select File:Preferences and turn on Verbose Outputs.

The program simply turns on a gpio port to light an LED - standard stuff.

Have tried the reset-while-uploading many times without success. That seems more aimed at the problem of not writing at all. Here it's writing fine, but only the first time. It's almost as if the upload were overwriting part of the system, preventing it from being written to again.