diff --git a/src/middlewares/term/updateTerm.ts b/src/middlewares/term/updateTerm.ts
index 228e9b78a86d08c4a25277af09848b6f6e19ed32..772047d604fce409745acb2574b4958d81dad76e 100644
--- a/src/middlewares/term/updateTerm.ts
+++ b/src/middlewares/term/updateTerm.ts
@@ -21,7 +21,11 @@ const updateTerm = () => async (
       if (value) newFields[field] = value;
     });
 
-    await Term.updateOne({ _id: req.params.termId }, { $set: newFields })
+    await Term.updateOne(
+      { _id: req.params.termId },
+      { $set: newFields },
+      { upsert: true, runValidators: true }
+    )
       .lean()
       .exec();
 
diff --git a/src/middlewares/user/updateUser.ts b/src/middlewares/user/updateUser.ts
index ab2d48544496a5ff06adcffec5f491b3d5d43d71..cca499da5bfbc75a66dc098f9810dd45e2dcd8f3 100644
--- a/src/middlewares/user/updateUser.ts
+++ b/src/middlewares/user/updateUser.ts
@@ -22,7 +22,11 @@ const updateUser = () => async (
       if (value) newFields[field] = value;
     });
 
-    await Profile.updateOne({ _id: req.params.userId }, { $set: newFields })
+    await Profile.updateOne(
+      { _id: req.params.userId },
+      { $set: newFields },
+      { upsert: true, runValidators: true }
+    )
       .lean()
       .exec();
 
diff --git a/src/middlewares/warning/updateWarning.ts b/src/middlewares/warning/updateWarning.ts
index f8c8ff5b1a1492d47ed9177036d59b374bc55a35..cd39652d5302fde6d94e3ce06bc5fb8e58d99fbc 100644
--- a/src/middlewares/warning/updateWarning.ts
+++ b/src/middlewares/warning/updateWarning.ts
@@ -19,7 +19,11 @@ const updateWarning = () => async (
       if (value) newFields[field] = value;
     });
 
-    await Warning.updateOne({ _id: req.params.warningId }, { $set: newFields })
+    await Warning.updateOne(
+      { _id: req.params.warningId },
+      { $set: newFields },
+      { upsert: true, runValidators: true }
+    )
       .lean()
       .exec();