This topic describes the causes of errors that are related to over-the-air (OTA) updates and the corresponding solutions.
A device update times out
Issue
You choose Maintenance > OTA Update in the IoT Platform console to go to the OTA Update page. When you initiate a batch update on this page, you configure the Device upgrade time-out (minutes) parameter. The first time a device submits the update progress, timing is triggered. If the device is not updated within the timeout period that you specified for Device upgrade time-out (minutes) parameter, IoT Platform determines that the update failed.
Cause
The network environment in which the device resides is unstable. Therefore, the period of time that is used to download the OTA update package exceeds the specified timeout period.
The first time the device fails to download an OTA update package or the update fails, the device is restarted. Then, the device receives the update task that is pushed by IoT Platform, downloads the OTA update package, and performs an update. As a result, the duration of the entire process exceeds the specified timeout period.
Solution
Set the Device upgrade time-out (minutes) parameter to a value that is greater than 60 or do not configure the parameter.
You can modify the Device upgrade time-out (minutes) parameter only for dynamic update tasks. You can modify this parameter multiple times. Each modification takes effect only for dynamic update tasks of devices that are added after the modification.
A device submits an invalid firmware version number
Issue
You choose Maintenance > OTA Update in the IoT Platform console to go to the OTA Update page. When you initiate a batch update on this page, you configure the Version number to be upgraded parameter. After a device downloads an update package, starts an update, and then submits the update progress, the device goes offline. Then, the device goes online and submits a firmware version number that is not the number of the source version or destination version. In this case, IoT Platform determines that the update failed.
Cause
During an OTA update, an on-premises firmware update is performed at the same time. After the on-premises firmware update is complete, the device submits a firmware version number that is not the number of the source version or destination version in the batch update task.
Solution
Before you update the on-premises firmware of a device, disconnect the device from IoT Platform. When the on-premises firmware update is complete, the device can go online and submit the latest firmware version number. The device must submit the latest firmware version number within 2 seconds after the device goes online.
In the IoT Platform console, choose Maintenance > OTA Update to go to the OTA Update page. When you initiate a batch update on this page, configure the Max. Retry Times parameter. For example, you can set the Max. Retry Times parameter to 5. After a device submits an invalid firmware version number, IoT Platform allows the device to perform a specified number of retries based on the value of the Max. Retry Times parameter. The retry policy improves the success rate of an OTA update.
A device submits an error value
Issue
During an update, a device submits one of the following error values by using the update progress-specific topic: -1 (Update Failed), -2 (Download Failed), -3 (Verification Failed), and -4 (Burn Failed). Then, IoT Platform determines that the update failed.
Cause
Multiple errors may occur during an OTA update. If an error occurs during an update, the device submits one of the error values and the corresponding custom description for troubleshooting.
The descriptions of the error values are predefined by IoT Platform. You can modify the descriptions. The device can submit a custom description based on the error that occurs.
Solution
In the IoT Platform console, choose Maintenance > OTA Update to go to the OTA Update page. When you initiate a batch update on this page, configure the Max. Retry Times parameter. For example, you can set the Max. Retry Times parameter to 5.
After a device submits an error value, IoT Platform allows the device to perform a specified number of retries based on the value of the Max. Retry Times parameter. The retry policy improves the success rate of an OTA update.
A device has multiple update tasks at the same time
Issue
A device can have only one ongoing update task. If you initiate another update task on the device, a conflict occurs and IoT Platform determines that the new update task failed.
Cause
When you initiate another update task on a device that has an ongoing update task, you set the Override Previous Device Update Tasks parameter to No.
Solution
In the IoT Platform console, choose Maintenance > OTA Update to go to the OTA Update page. When you initiate a batch update on the OTA Update page, set the Override Previous Device Update Tasks parameter to Yes.
On the Batch Details page of the IoT Platform console, cancel the tasks that are in the To Be Pushed, Pushed, and In upgrade states. Then, initiate a new update task on the device.
You can only cancel update tasks that are in the In upgrade state but cannot overwrite such update tasks.