2

We are experiencing issues when trying to move or save a category in Magento 2.1.8

Trying to move a category results in:

There was a category move error.

Whilst trying to save gives this error:

Something went wrong while saving the category.

The following in the exception log is one clue:

main.CRITICAL: InvalidArgumentException: indexMethod must be one of  in
/home/site/websites/www.xxxxxxxxxx.com/htdocs/vendor/magento/framework/DB/TemporaryTableService.php:103

The only other error being in the console:

VM1871:6 Expected to start loader but did not find one in the dom

I've found people with similar errors on Google, but none with this exception.

I've tried:

  • Reindexing
  • Clearing caches
  • Recompiling
  • Truncating the url_rewrite table

But nothing has worked.

Any help would be greatly appreciated.

  • Geat, donot get proper error message. First open Magento\Catalog\Controller\Adminhtml\Category\Save .Find ` $this->messageManager->addError(__('Something went wrong while saving the category.'));` change to ` $this->messageManager->addError($e->getMessage());` tell message what is the issue – Amit Bera Sep 22 '17 at 2:22
  • Thanks, Amit. It gives me the same error that I saw in the logs: "indexMethod must be one of", and that's the entire error string. It's like the whole request to write to the database is empty. – Geat Sep 22 '17 at 15:08
  • i guess that some tabl related to product was corrupt that why it is happeing – Amit Bera Sep 23 '17 at 7:35
2

The user dakzilla over on GitHub had the same issue, and his solution worked for me.

During the upgrade from 2.1.7 to 2.1.8 (in my case), app/etc/di.xml was not updated properly.

Adding the following lines to the file (after comparing my file to that in the official download) and recompiling got rid of the errors.

<type name="Magento\Framework\DB\TemporaryTableService">
  <arguments>
    <argument name="allowedIndexMethods" xsi:type="array">
      <item name="HASH" xsi:type="string">HASH</item>
      <item name="BTREE" xsi:type="string">BTREE</item>
    </argument>
    <argument name="allowedEngines" xsi:type="array">
      <item name="INNODB" xsi:type="string">INNODB</item>
      <item name="MEMORY" xsi:type="string">MEMORY</item>
      <item name="MYISAM" xsi:type="string">MYISAM</item>
    </argument>
  </arguments>
</type>
0

Not the solution, but at least it will bring you closer to it. It's vendor/magento/module-catalog-url-rewrite/Model/Category/CurrentUrlRewritesRegenerator.php and vendor/magento/module-catalog-url-rewrite/Model/Product/CurrentUrlRewritesRegenerator.php getting the wrong entity type info (ProductUrlRewriteGenerator::ENTITY_TYPE returns 'product' instead of 4, CategoryUrlRewriteGenerator::ENTITY_TYPE is 'category' instead of 3)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.