diff --git a/src/app/resource/controllers/ResController.php b/src/app/resource/controllers/ResController.php
index bfc3e978442bb13ec245dbcafe54e0d733e0301b..110d6a5c9402a7b2f0dca9f5fa4875f4a892ced2 100755
--- a/src/app/resource/controllers/ResController.php
+++ b/src/app/resource/controllers/ResController.php
@@ -1410,39 +1410,17 @@ class ResController extends ResourceControlController
             }
         }
 
-        // Checking if model has a custom field. If yes, the customs are reset in the update, if not, we set it to an empty JSON object
-        $newModelHasCustomFields = false;
-        foreach ($newModelFields as $newModelField) {
-            if (strpos($newModelField, 'indexingCustomField_') !== false) {
-                $newModelHasCustomFields = true;
-                break;
-            }
-        }
-
-        $oldModelHasCustomFields = false;
-        foreach ($oldFieldList as $oldModelField) {
-            if (strpos($oldModelField, 'indexingCustomField_') !== false) {
-                $oldModelHasCustomFields = true;
-                break;
-            }
-        }
-
-        $postSet = [];
-        if ($oldModelHasCustomFields && !$newModelHasCustomFields) {
-            $set['custom_fields'] = '{}';
-        } else {
-            $customFieldsToDelete = array_diff($oldFieldList, $newModelFields);
-            $customFieldsToDelete = array_filter($customFieldsToDelete, function ($field) {
-                return strpos($field, 'indexingCustomField_') !== false;
-            });
-            $customFieldsToDelete = array_map(function ($field) {
-                return explode('_', $field)[1];
-            }, $customFieldsToDelete);
-
-            $postSet['custom_fields'] = 'custom_fields ';
-            foreach ($customFieldsToDelete as $item) {
-                $postSet['custom_fields'] .= " - '$item'";
-            }
+        $customFieldsToDelete = array_diff($oldFieldList, $newModelFields);
+        $customFieldsToDelete = array_filter($customFieldsToDelete, function ($field) {
+            return strpos($field, 'indexingCustomField_') !== false;
+        });
+        $customFieldsToDelete = array_map(function ($field) {
+            return explode('_', $field)[1];
+        }, $customFieldsToDelete);
+
+        $postSet = ['custom_fields' => 'custom_fields '];
+        foreach ($customFieldsToDelete as $item) {
+            $postSet['custom_fields'] .= " - '$item'";
         }
 
         if (!empty($set) || !empty($postSet)) {
diff --git a/src/app/resource/controllers/StoreController.php b/src/app/resource/controllers/StoreController.php
index 9e36396ea604912e9890b5296a710dff4bf0e715..9daaf2aff82049408d613c6c9affa9eafd5f00e2 100755
--- a/src/app/resource/controllers/StoreController.php
+++ b/src/app/resource/controllers/StoreController.php
@@ -268,7 +268,7 @@ class StoreController
             'modification_date' => 'CURRENT_TIMESTAMP'
         ];
 
-        $resource = ResModel::getById(['resId' => $args['resId'], 'select' => ['version', 'alt_identifier', 'external_id', 'category_id', 'type_id', 'destination']]);
+        $resource = ResModel::getById(['resId' => $args['resId'], 'select' => ['version', 'alt_identifier', 'external_id', 'category_id', 'type_id', 'destination', 'custom_fields']]);
 
         if (!empty($args['modelId'])) {
             $preparedData['model_id']    = $args['modelId'];
@@ -362,6 +362,14 @@ class StoreController
                     $args['customFields'][$key] = $value;
                 }
             }
+            $customFields = json_decode($resource['custom_fields'], true);
+            $technicalCustoms = CustomFieldModel::get(['select' => ['id'], 'where' => ['mode = ?'], 'data' => ['technical']]);
+            $technicalCustoms = array_column($technicalCustoms, 'id');
+            foreach ($technicalCustoms as $technicalCustom) {
+                if (!empty($customFields[$technicalCustom])) {
+                    $args['customFields'][$technicalCustom] = $customFields[$technicalCustom];
+                }
+            }
             $preparedData['custom_fields'] = json_encode($args['customFields']);
         }