I have a Java desktop app that has the ability to link directly with Magento 2. I migrated a client from Magento 1.7.0.2 to Magento 2.1 then upgraded them from that to 2.2.8. Afterwards, I performed a delta migration to bring the changes from M1 to M2.
I am currently unable to create products through the REST API as I get the following stack trace in my logs. I don't get these on the server and get them through my local Java logs.
Error Response Message: ErrorResponse{message='Cannot save product.', errors=null, code=null, parameters=null, trace='#0 [internal function]: Magento\Catalog\Model\Product\Gallery\GalleryManagement->create('2296', Object(Magento\Catalog\Model\Product\Gallery\Entry))
#1 /html/vendor/magento/module-webapi/Controller/Rest/SynchronousRequestProcessor.php(95): call_user_func_array(Array, Array)
#2 /html/vendor/magento/module-webapi/Controller/Rest.php(244): Magento\Webapi\Controller\Rest\SynchronousRequestProcessor->process(Object(Magento\Framework\Webapi\Rest\Request\Proxy))
#3 /html/vendor/magento/framework/Interception/Interceptor.php(58): Magento\Webapi\Controller\Rest->dispatch(Object(Magento\Framework\App\Request\Http))
#4 /html/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Webapi\Controller\Rest\Interceptor->___callParent('dispatch', Array)
#5 /html/vendor/magento/framework/Interception/Interceptor.php(153): Magento\Webapi\Controller\Rest\Interceptor->Magento\Framework\Interception\{closure}(Object(Magento\Framework\App\Request\Http))
#6 /html/generated/code/Magento/Webapi/Controller/Rest/Interceptor.php(39): Magento\Webapi\Controller\Rest\Interceptor->___callPlugins('dispatch', Array, Array)
#7 /html/vendor/magento/framework/App/Http.php(136): Magento\Webapi\Controller\Rest\Interceptor->dispatch(Object(Magento\Framework\App\Request\Http))
#8 /html/generated/code/Magento/Framework/App/Http/Interceptor.php(24): Magento\Framework\App\Http->launch()
#9 /html/vendor/magento/framework/App/Bootstrap.php(257): Magento\Framework\App\Http\Interceptor->launch()
#10 /html/index.php(39): Magento\Framework\App\Bootstrap->run(Object(Magento\Framework\App\Http\Interceptor))
#11 {main}'}
I looked up the issue and found that if the media_gallery
attribute in eav_attribute
is set to varchar instead of static, this can possibly happen. I changed the attribute to static and flushed my caches. But there was no change. I'm not entirely sure where the main differences are between this database with migrated M1 data and a fresh Magento 2.2.8 install. It does work on a fresh install so I'm fairly confident it's a database schema issue, but I'm not 100 percent on that.