Boron LTE blinks magenta few times followed by red SOS

I had a Boron LTE device running in the field for a few months just fine. Few days I go released a OTA firmware update to the device. The firmware upgrade was unsuccessful, I had the device shipped back to me and when I power up the device blinks a few times magenta followed by 10 red SOS blinks. Also, the charging LED blinks rapidly every time I power it up. I tried these steps Device Blinking Red, Yellow, or Frozen/No LED – Particle Support to recover it.

When I run particle update I get this

> Your device is ready for a system update.
> This process should take about 30 seconds. Here it goes!

▀ Updating system firmware on the device...dfu-util 0.8

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2014 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to dfu-util@lists.gnumonks.org

▐ Updating system firmware on the device...Opening DFU capable USB device...
ID 2b04:d00d
Run-time device DFU version 011a
Claiming USB DFU Interface...
Setting Alternate Setting #0 ...
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 011a
Device returned transfer size 4096
DfuSe interface name: "Internal Flash   "
Downloading to address = 0x00030000, size = 494444
Downloadng syste[=========================] 100%       494444 bytes
Download done.
File downloaded successfully
Invalid DFU suffix signature
A valid DFU suffix will be required in a future dfu-util release!!!
▌ Updating system firmware on the device...dfu-util 0.8

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2014 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to dfu-util@lists.gnumonks.org

▀ Updating system firmware on the device...Opening DFU capable USB device...
ID 2b04:d00d
Run-time device DFU version 011a
Claiming USB DFU Interface...
Setting Alternate Setting #0 ...
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 011a
Device returned transfer size 4096
DfuSe interface name: "Internal Flash   "
Downloading to address = 0x00001000, size = 153024
Downloadng syste[=========================] 100%       153024 bytes
Download done.
File downloaded successfully
Invalid DFU suffix signature
A valid DFU suffix will be required in a future dfu-util release!!!
▀ Updating system firmware on the device...dfu-util 0.8

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2014 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to dfu-util@lists.gnumonks.org

▐ Updating system firmware on the device...Opening DFU capable USB device...
ID 2b04:d00d
Run-time device DFU version 011a
Claiming USB DFU Interface...
Setting Alternate Setting #2 ...
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 011a
Device returned transfer size 4096
DfuSe interface name: "External Flash   "
Downloading to address = 0x80289000, size = 46580
Downloadng syste[=========================] 100%        46580 bytes
Download done.
File downloaded successfully
Invalid DFU suffix signature
A valid DFU suffix will be required in a future dfu-util release!!!
▐ Updating system firmware on the device...dfu-util 0.8

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2014 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to dfu-util@lists.gnumonks.org

Opening DFU capable USB device...
ID 2b04:d00d
Run-time device DFU version 011a
Claiming USB DFU Interface...
Setting Alternate Setting #1 ...
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 011a
Device returned transfer size 4096
DfuSe interface name: "DCD Flash   "
Downloading to address = 0x000006d9, size = 1
▐ Updating system firmware on the device...File too short for DFU suffix
A valid DFU suffix will be required in a future dfu-util release!!!
Error during download get_status

! An error occurred while attempting to update the system firmware of your device:

File too short for DFU suffix
A valid DFU suffix will be required in a future dfu-util release!!!
Error during download get_status

Prior to releasing the firmware I had two other devices upgraded and running the same code just fine. Any thoughts?

I guess your new firmware targets a newer device OS and hence previously “acceptable” code may now cause problems as the security enforcement got more strict.

Without seeing your code it’s hard to tell tho’

I’m not able to take the device out of the SOS state. I can put it in to DFU mode but when I run particle update it fails.

here is a video PXL_20210306_035249126

Also, I’m unable to put the device in listening mode. Based on what I have been reading on this forum it appears to be a corrupt bootloader. If that is the case how could that have happened when the was a OTA update. Before releasing the firmware update, the device was already on 2.0.1.

You could download the apropriate bootloader binary from here

And then try to flash it via DFU Mode - this should be possible for a while now.

particle flash --usb <yourBinary> -v

While at it you can also download the System, SoftDevice and Tinker binaries and flash them too.

I was able to flash everything but the bootloader. Here is what I get when i try to do that
Error writing firmware: unknown module function 2, use --force to override

VError: Error writing firmware: unknown module function 2, use --force to override
    at C:\Users\user\AppData\Local\particle\node_modules\particle-cli\dist\cmd\flash.js:208:13
    at processTicksAndRejections (internal/process/task_queues.js:97:5)
    at async CLI.runCommand (C:\Users\user\AppData\Local\particle\node_modules\particle-cli\dist\app\cli.js:160:7)
    at async CLI.run (C:\Users\user\AppData\Local\particle\node_modules\particle-cli\dist\app\cli.js:190:14)
caused by: Error: unknown module function 2, use --force to override
    at C:\Users\user\AppData\Local\particle\node_modules\particle-cli\dist\cmd\flash.js:176:21
    at tryCatchReject (C:\Users\user\AppData\Local\particle\node_modules\particle-cli\node_modules\when\lib\makePromise.js:845:30)
    at runContinuation1 (C:\Users\user\AppData\Local\particle\node_modules\particle-cli\node_modules\when\lib\makePromise.js:804:4)
    at Fulfilled.when (C:\Users\user\AppData\Local\particle\node_modules\particle-cli\node_modules\when\lib\makePromise.js:592:4)
    at Pending.run (C:\Users\user\AppData\Local\particle\node_modules\particle-cli\node_modules\when\lib\makePromise.js:483:13)
    at Scheduler._drain (C:\Users\user\AppData\Local\particle\node_modules\particle-cli\node_modules\when\lib\Scheduler.js:62:19)
    at Scheduler.drain (C:\Users\user\AppData\Local\particle\node_modules\particle-cli\node_modules\when\lib\Scheduler.js:27:9)
    at processTicksAndRejections (internal/process/task_queues.js:79:11)

You may need to file a support ticket at support.particle.io