diff --git a/main/protocols/mqtt_protocol.cc b/main/protocols/mqtt_protocol.cc index 94d9d12a..d95d0038 100644 --- a/main/protocols/mqtt_protocol.cc +++ b/main/protocols/mqtt_protocol.cc @@ -114,8 +114,8 @@ bool MqttProtocol::StartMqttClient(bool report_error) { ParseServerHello(root); } else if (strcmp(type->valuestring, "goodbye") == 0) { auto session_id = cJSON_GetObjectItem(root, "session_id"); - ESP_LOGI(TAG, "Received goodbye message, session_id: %s", session_id ? session_id->valuestring : "null"); - if (session_id == nullptr || session_id_ == session_id->valuestring) { + ESP_LOGI(TAG, "Received goodbye message, session_id: %s", cJSON_IsString(session_id) ? session_id->valuestring : "null"); + if (cJSON_IsString(session_id) && session_id_ == session_id->valuestring) { auto alive = alive_; // Capture alive flag Application::GetInstance().Schedule([this, alive]() { if (*alive) {