diff --git a/src/app/clusters/operational-credentials-server/operational-credentials-server.cpp b/src/app/clusters/operational-credentials-server/operational-credentials-server.cpp index aa29c7089ab3a9..fc53d00ea1c853 100644 --- a/src/app/clusters/operational-credentials-server/operational-credentials-server.cpp +++ b/src/app/clusters/operational-credentials-server/operational-credentials-server.cpp @@ -26,6 +26,7 @@ #include #include #include +#include #include #include #include @@ -343,6 +344,12 @@ bool emberAfOperationalCredentialsClusterAddOpCertCallback(chip::app::Command * VerifyOrExit(admin->SetOperationalCert(OperationalCert) == CHIP_NO_ERROR, status = EMBER_ZCL_STATUS_FAILURE); VerifyOrExit(GetGlobalAdminPairingTable().Store(admin->GetAdminId()) == CHIP_NO_ERROR, status = EMBER_ZCL_STATUS_FAILURE); + // We have a new operational identity and should start advertising it. We + // can't just wait until we get network configuration commands, because we + // might be on the operational network already, in which case we are + // expected to be live with our new identity at this point. + chip::app::Mdns::StartServer(); + exit: emberAfSendImmediateDefaultResponse(status); if (status == EMBER_ZCL_STATUS_FAILURE)