Share via

IoT Edge modules do not start after offline reboot – only edgeAgent runs

shekoofy 5 Reputation points
2026-01-08T14:58:24.0266667+00:00

We are using Azure IoT Edge 1.5 (aziot) on an ARM64 (i.MX8) Linux device.

Scenario

  1. Device is online and connected to IoT Hub

Deployment is applied successfully

All modules (edgeHub + custom modules) are running

Device is shut down cleanly

Network is disconnected

Device is powered on while offline

Expected Previously running modules should start from cached deployment and images.

Actual

Only edgeAgent starts

No other modules are created or started

edgeAgent logs repeatedly show:

Empty edge agent config was received. Attempting to read config from backup

  `Unable to process module <name> add or update as the module identity could not be obtained`
  
     Repeated attempts to connect to IoT Hub (AMQP TCP / WebSocket)
     

Observations

Module images are present locally

/var/lib/aziot/identityd exists (device_info, modules, prev_state)

Device has no battery-backed RTC

RTC resets to 1970 on cold boot

  System time is corrected later via NTP, but after aziot services already started
  
  `edgeAgent` attempts to read backup config from `/tmp/edgeAgent/edgeAgent/backup.json`, which does not persist across reboots
  

Question Is this behavior expected by design, or is there a supported way to make IoT Edge reliably start modules offline after a reboot (for example on devices without an RTC)?We are using Azure IoT Edge 1.5 (aziot) on an ARM64 (i.MX8) Linux device.

Scenario

Device is online and connected to IoT Hub

Deployment is applied successfully

All modules (edgeHub + custom modules) are running

Device is shut down cleanly

Network is disconnected

Device is powered on while offline

Expected
Previously running modules should start from cached deployment and images.

Actual

Only edgeAgent starts

No other modules are created or started

edgeAgent logs repeatedly show:

Empty edge agent config was received. Attempting to read config from backup

  `Unable to process module <name> add or update as the module identity could not be obtained`
  
     Repeated attempts to connect to IoT Hub (AMQP TCP / WebSocket)
     

Observations

Module images are present locally

  • /var/lib/aziot/identityd exists (device_info, modules, prev_state)
  • This only happens in some devices, and all devices are generated identically on the same day

Question
Why does this happen? is there a supported way to make IoT Edge reliably start modules offline after a reboot?

Azure IoT Edge
Azure IoT Edge

An Azure service that is used to deploy cloud workloads to run on internet of things (IoT) edge devices via standard containers.

0 comments No comments

2 answers

Sort by: Most helpful
  1. Sander van de Velde | MVP 37,056 Reputation points MVP
    2026-01-08T19:54:29.1+00:00

    Hello @shekoofeh dehkhodaei,

    welcome to this Azure Community forum.

    Azure IoT Edge should be able to restart in an offline situation for months or even years.

    The problem seen seems to be related to the clock as indicated.

    This is because there are several certificates involved when running an Azure IoT Edge solution.

    Apart from the TLS connection with the IoT Hub and the optional certificate for the IoT hub device identity registration, a certificate is used to secure the inter module communication.

    If you have ruggedized your device, you have probably seen that Azure IoT edge comes standard with those certificated, valid for 60 days only.

    I have never used an edge device without battery backup for the internal clock but having a correct time is essential. Can you consider adding battery support?

    NTP is mentioned. Making use of a cloud based NTP server is counter productive in offline scenarios.

    Can you run an NTP server on the local network?

    Thinking out of the box but not endorsing this, you could try to replace the certificates with custom ones that are valid... Check this blog post (based on the older 1.1 version of Azure IoT Edge but the principal is still the same) for more information about providing custom certificates.

    --

    If the response helped, do "Accept Answer". If it doesn't work, please let us know the progress. All community members with similar issues will benefit by doing so. Your contribution is highly appreciated.


  2. Q&A Assist
    2026-01-08T14:58:37.9133333+00:00
    AI generated content. This question contains an answer created with AI from Q&A Assist. Learn more

    The behavior you're experiencing with Azure IoT Edge, where only the edgeAgent starts after an offline reboot, is likely due to the absence of a battery-backed RTC (Real-Time Clock) on your device. When the device is powered on without an RTC, the system time resets to 1970, which can lead to issues with the edgeAgent reading the backup configuration from /tmp/edgeAgent/edgeAgent/backup.json. This file does not persist across reboots, causing the edgeAgent to report an empty config and fail to start other modules.

    The expected behavior is that previously running modules should start from cached deployment and images, but without the correct time, the edgeAgent cannot obtain the module identities from the IoT Hub, leading to the issues you're seeing.

    To improve reliability in starting modules offline after a reboot, consider the following:

    1. RTC Implementation: If possible, implement a battery-backed RTC to maintain the system time across reboots. This would help the edgeAgent correctly read the backup configuration.
    2. Local Configuration: Ensure that your device can handle local configurations effectively, allowing it to start modules based on cached deployment information even when offline.
    3. Deployment Strategy: Review your deployment strategy to ensure that it accounts for scenarios where devices may reboot without network connectivity.

    Currently, there may not be a supported way to make IoT Edge reliably start modules offline after a reboot without addressing the RTC issue or ensuring the configuration persists across reboots.


    References:

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.