E Series unable to connect to Cloud after days of usage

Hi,

we have several Boards - also a few at customers place - that are running idle and being connected to the cloud. After quite some time they loose connection and try to reconnect but that results in an endless handshake with the cloud.

On Firmware we are using manual mode which we have to because we need to set up interrupts right at start and not after it has connected to the cloud successfully (need to count edges).

We enabled logging and here’s the messages we get:

0000089633 [system] WARN: Public Server Address was blank, restoring.
0000164210 [comm.protocol.handshake] ERROR: Could not send HELLO message: 10
0000164210 [system] WARN: Cloud handshake failed, code=10
0000166474 [system] WARN: Public Server Address was blank, restoring.
0000256550 [comm.protocol.handshake] ERROR: Could not send HELLO message: 10
0000256551 [system] WARN: Cloud handshake failed, code=10
0000258251 [system] WARN: Public Server Address was blank, restoring.
0000355196 [comm.protocol.handshake] ERROR: Could not send HELLO message: 10
0000355197 [system] WARN: Cloud handshake failed, code=10
0000357520 [system] WARN: Public Server Address was blank, restoring.
0000440591 [comm.protocol.handshake] ERROR: Could not send HELLO message: 10
0000440591 [system] WARN: Cloud handshake failed, code=10
0000441591 [system] WARN: Public Server Address was blank, restoring.
0000520568 [comm.protocol.handshake] ERROR: Could not send HELLO message: 10
0000520569 [system] WARN: Cloud handshake failed, code=10

This goes over and over until all of the included SIM-Card Megabytes have been used. RGB-LED is blinking and quickly blinking cyan - so handshaking. No breathing.

Can anyone help identify what that error code 10 means?


Edit

Only way to fix this is by manually connecting the device via USB while it’s in DFU-Mode and issue following command particle keys doctor <device-id>.

After this has been done the next time the device is being reset - it connects to the cloud successfully! But since we have boards at the customers place - there is no way of doing this at their place.

If it’s definitely a keys issue, perhaps you could use the DeviceKeyHelperRK library created by @rickkas7. It will store the device keys in non-volatile memory of your choosing and then monitor for keys errors. There is a very good writeup of the keys issue in the readme:

1 Like