diff --git a/src/plugins/languageclient/languageclientmanager.cpp b/src/plugins/languageclient/languageclientmanager.cpp index 16f76160cbd..9ab57d4994a 100644 --- a/src/plugins/languageclient/languageclientmanager.cpp +++ b/src/plugins/languageclient/languageclientmanager.cpp @@ -660,7 +660,8 @@ void LanguageClientManager::documentOpened(Core::IDocument *document) clients.removeAll(clientForProject); } } else if (setting->m_startBehavior == BaseSettings::RequiresFile && clients.isEmpty()) { - clients << startClient(setting); + if (Client *client = startClient(setting); QTC_GUARD(client)) + clients << client; } allClients << clients; } diff --git a/src/plugins/languageclient/languageclientsettings.cpp b/src/plugins/languageclient/languageclientsettings.cpp index f5e73eb0a4b..357487cc8a3 100644 --- a/src/plugins/languageclient/languageclientsettings.cpp +++ b/src/plugins/languageclient/languageclientsettings.cpp @@ -618,6 +618,7 @@ Client *BaseSettings::createClient(ProjectExplorer::Project *project) const BaseClientInterface *interface = createInterface(project); QTC_ASSERT(interface, return nullptr); auto *client = createClient(interface); + QTC_ASSERT(client, return nullptr); if (client->name().isEmpty()) client->setName(Utils::globalMacroExpander()->expand(m_name));