diff --git a/src/controller/CHIPDeviceController.cpp b/src/controller/CHIPDeviceController.cpp index ee791fa8988b96..6229dd7f1eb261 100644 --- a/src/controller/CHIPDeviceController.cpp +++ b/src/controller/CHIPDeviceController.cpp @@ -939,9 +939,11 @@ CHIP_ERROR DeviceCommissioner::OperationalDiscoveryComplete(NodeId remoteDeviceI Device * device = nullptr; ReturnErrorOnFailure(GetDevice(remoteDeviceId, &device)); - device->OperationalCertProvisioned(); - PersistDevice(device); - PersistNextKeyId(); + if (!device->IsSecureConnected() && !device->IsSessionSetupInProgress()) { + device->OperationalCertProvisioned(); + PersistDevice(device); + PersistNextKeyId(); + } return GetConnectedDevice(remoteDeviceId, &mOnDeviceConnectedCallback, &mOnDeviceConnectionFailureCallback); }