diff --git a/app/code/Magento/ConfigurableProduct/Model/ResourceModel/Product/Type/Configurable.php b/app/code/Magento/ConfigurableProduct/Model/ResourceModel/Product/Type/Configurable.php
index 6eb76c83d0a1b104c70acf47b9d6121941ad7609..8dda060c4f75ff4428bb4ebede6985265c61def2 100644
--- a/app/code/Magento/ConfigurableProduct/Model/ResourceModel/Product/Type/Configurable.php
+++ b/app/code/Magento/ConfigurableProduct/Model/ResourceModel/Product/Type/Configurable.php
@@ -62,10 +62,7 @@ class Configurable extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb
     {
         $isProductInstance = false;
         if ($mainProduct instanceof \Magento\Catalog\Model\Product) {
-            $mainProductId = $mainProduct->getData(
-                $this->metadataPool->getMetadata(ProductInterface::class)->getLinkField()
-            );
-
+            $mainProductId = $mainProduct->getId();
             $isProductInstance = true;
         }
         $old = [];
@@ -91,9 +88,9 @@ class Configurable extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb
             }
             $this->getConnection()->insertMultiple($this->getMainTable(), $data);
         }
-
+        $linkField = $this->metadataPool->getMetadata(ProductInterface::class)->getLinkField();
         // configurable product relations should be added to relation table
-        $this->_catalogProductRelation->processRelations($mainProductId, $productIds);
+        $this->_catalogProductRelation->processRelations($mainProduct->getData($linkField), $productIds);
 
         return $this;
     }