Please check the Troubleshooting documentation first at Device Update for IoT Hub all issues. This document provides additional articles to help investigate Device update for IoT Hub Agent related issues.
If you run into issues with the Device Update Agent, you have a couple options to help troubleshoot. Start by collecting the Device Update logs as shown below
-
On the Raspberry Pi Device there are two sets of logs found here:
/adu/logs
/var/cache/deliveryoptimization-agent/log
-
For the packaged client the logs are found here:
/var/log/adu
/var/cache/deliveryoptimization-agent/log
-
For the Simulator (Device Update Agent version 0.7.0 and older) the logs are found here:
/tmp/aduc-logs
The 'ADUCoreInterface' interface reports ResultCode and
ExtendedResultCode which can be used to diagnose failures. Learn
More in Device Update Plug and Play about the 'ADUCoreInterface' interface.
ResultCode is a general status code and follows http status code convention.
Learn More about http
status codes.
ExtendedResultCode is an integer with encoded error information.
You will most likely see the ExtendedResultCode as a signed integer in the PnP
interface. To decode the ExtendedResultCode, convert the signed integer to
unsigned hex. Only the first 4 bytes of the ExtendedResultCode are used and
are of the form F FFFFFFF where the first nibble is the Facility Code and
the rest of the bits are the Error Code.
| Facility Code | Description |
|---|---|
| D | Error raised from the DO SDK |
| E | Error code is an errno |
For example:
ExtendedResultCode is -536870781
The unsigned hex representation of -536870781 is FFFFFFFF E0000083.
| Ignore | Facility Code | Error Code |
|---|---|---|
| FFFFFFFF | E | 0000083 |
0x83 in hex is 131 in decimal which is the errno value for ENOTRECOVERABLE.