diff --git a/common/cpp/src/database/mongodb_client.cpp b/common/cpp/src/database/mongodb_client.cpp
index 815c911a97350fcae692c465c40d28219fc42cea..6fcd19d949bcf45dda2b64d5a640ff80f601e763 100644
--- a/common/cpp/src/database/mongodb_client.cpp
+++ b/common/cpp/src/database/mongodb_client.cpp
@@ -366,6 +366,15 @@ Error MongoDBClient::GetNextId(const std::string& stream, uint64_t* id) const {
                                           mongoc_find_and_modify_flags_t(MONGOC_FIND_AND_MODIFY_UPSERT | MONGOC_FIND_AND_MODIFY_RETURN_NEW));
     success = mongoc_collection_find_and_modify_with_opts (
                   collection, &query, opts, &reply, &error);
+    
+    // E11000 duplicate key error collection
+    // This does happen when several receivers create new collection
+    // Just try again
+    if (!success && error.code == 11000){
+        success = mongoc_collection_find_and_modify_with_opts (
+                  collection, &query, opts, &reply, &error);
+    }
+
     Error err;
     if (success) {
         bson_iter_t iter;