OTA update fails in Argon

We have a product based on the Argon board. We added some mechanisms to trigger an OTA update only when the end user decides to do it (by using System.disableUpdates() in Setup, unless a special flag has been set in EEPROM).
When there are updates pending, we let the end user know, and if they decide to update, we set a flag in EEPROM, and we call System.reset(). When this happens, it all looks OK: the Argon reboots (and we delete the EEPROM flag but we do not call disableUpdates), connects to the cloud, the LED starts flashing magenta, the console shows:

spark/flash/status started

After a while (*) it shows:

spark/flash/status success

then the device reboots (by itself, since we are running almost an empty loop in this case), but it comes up with the old firmware.

(*) The time that it takes for the device to signal flash successful is sometimes very short (2 seconds), and this is for a program that is about 240KB long.

I’m using device OS 4.0.2

Any ideas of what could be causing this behavior? It looks like the update is failing, so it keeps the old version, but there is no indication of the failure, or its cause.


Are you getting any error messages? Is this limited to one Argon or does it happen on every board?

The problem in my board went away somehow. I am able to lock it to any of the ~5 firmware versions that I have deployed for that product and will update with no issues now. I know there is at least one more Argon board in that product group (out of a total of about 10 devices) with that same problem, but I do not have access to it at the moment.
There were no error messages. Like I mentioned, the Particle Console even showed the message

spark/flash/status success

I will try to get access to that other board to run some more tests, as well as testing other boards in the group. I’ll report back here.

That is really weird- please let me know when you get access to that board.