SOLVED - OTA updates are unreliable once firmware reaches 128KB memory limit

Our product is making use of all the available memory, currently our code is at 130,908 bytes and I can not reliably flash the firmware OTA using the CLI or particle dev.

Does anyone have any thoughts/idea why this would be happening or how to correct it?


Does OTA also fail in Safe Mode?
If not, I’d rather think it’s the behaviour of the running code rather than its size.

@ScruffR, I tried it in safe mode a few times and still no updates are coming through, it just times out.

And flashing via USB?
If this doesn’t work, I guess you’ve hit the actual flash limit and need to stream line your code.

I can flash via USB just fine.

@ScruffR, @mohit have some more information of behavior that I’m seeing.

P1 is connected to the cloud
Press the compile and flash button within Particle Dev
Complies fine
But as soon as the Flashing via the cloud is shown

The Particle Dev shows that the P1 lost connection to the cloud
The P1 fast flashes cyan (cloud handshaking) for a second then reconnects to the cloud
Then the Particle Dev either says timed out or Success but the firmware was never uploaded


I realized the this device ID was in the Particle Dashboard under the denied list. Once I removed the Product ID from the firmware, flashed new firmware via USB then removed the device from the dashboard.

The flashing is now working via the CLI. YAY!!


Well I have to retract my previous find, this was part of the problem but not the entire solution. Now my device is removed from the Dashboard all together, but I am still having issues flashing.

Current memory size is: 127 KB (130,068 bytes)

Hm–is it removed both from the Developer dashboard as well as the product creator dashboard? Does it show up under “Devices” at

@will, Im not sure what the developer dashboard vs the product creator dashboard are.

It does show up at “Devices” at

It does not show up at within “Devices”.

@jeiden might be able to help here.

The issue might be that, by defining giving your device a different product_ID, you’ve categorized it as a non-Particle device. This might cause it to appear under an “Other” category at In the Dashboard, we separate interfaces for standard users and product creators. You can toggle between the two views by clicking on the dropdown, here:

You won’t have access to this view if you don’t have an Organizations account in the dashboard…you may need to submit a support ticket request at

I forgot about that toggle, my device is also listed in the developer section as shown above listed as a P1. I have flashed new firmware to the P1 just removing the definitions for the product product ID and product version and I removed the device from my products in the dashboard.

I was able to flash firmware from the online Build platform when it was just a minimal sketch and the automatic OTA updates work when triggered by dashboard.

Thanks for looking into this

No problem–we’ll be releasing some changes to the Dashboard soon that should resolve some issues with navigation and feature discovery!