diff --git a/samples/connectedhomeip/lock/src/main.cpp b/samples/connectedhomeip/lock/src/main.cpp index 95e4754d86f8..9a109634ccd5 100644 --- a/samples/connectedhomeip/lock/src/main.cpp +++ b/samples/connectedhomeip/lock/src/main.cpp @@ -30,17 +30,31 @@ int main() return ret; } - ret = ThreadStackMgr().InitThreadStack(); + ret = PlatformMgr().StartEventLoopTask(); if (ret != CHIP_NO_ERROR) { - LOG_ERR("ThreadStackMgr().InitThreadStack() failed"); + LOG_ERR("PlatformMgr().StartEventLoopTask() failed"); return ret; } - ret = PlatformMgr().StartEventLoopTask(); + ret = ThreadStackMgr().InitThreadStack(); if (ret != CHIP_NO_ERROR) { - LOG_ERR("PlatformMgr().StartEventLoopTask() failed"); + LOG_ERR("ThreadStackMgr().InitThreadStack() failed"); return ret; } + /* Until all CHIP data needed to perform full communication are not saved in the persistent storage, + * Thread configuration should not be saved either. + * TODO: Remove it after having full support for persistent storage in CHIP */ + if(otDatasetIsCommissioned(openthread_get_default_instance())) { + ConnectivityMgr().ErasePersistentInfo(); + } + + ret = ConnectivityMgr().SetThreadDeviceType(ConnectivityManager::kThreadDeviceType_MinimalEndDevice); + if (ret != CHIP_NO_ERROR) + { + LOG_ERR("ConnectivityMgr().SetThreadDeviceType() failed"); + return ret; + } + return GetAppTask().StartApp(); }