diff --git a/common/cpp/src/database/mongodb_client.cpp b/common/cpp/src/database/mongodb_client.cpp
index 6020f2664b4f4348a44457b6930e12d30cd18c74..432982976c4ec6eaae9888ab6a299e685fe1e349 100644
--- a/common/cpp/src/database/mongodb_client.cpp
+++ b/common/cpp/src/database/mongodb_client.cpp
@@ -92,12 +92,14 @@ Error MongoDBClient::Connect(const std::string& address, const std::string& data
 
     auto err = InitializeClient(address);
     if (err) {
+        CleanUp();
         return err;
     }
 
     database_name_ = EncodeDbName(database_name);
 
     if (database_name_.size() > maxDbNameLength) {
+        CleanUp();
         return DBErrorTemplates::kWrongInput.Generate("data source name too long");
     }