Итак, No such entity.
сообщение об ошибке приходит \lib\internal\Magento\Framework\Exception\NoSuchEntityException.php
.
Этот класс является пользовательским классом исключений в Magento, и он часто используется в Magento 2.
Всякий раз, когда вы видите код вроде:
catch (NoSuchEntityException $e)
Или
throw NoSuchEntityException;
Этот класс используется.
Проблема в вашем случае заключается в том, что трудно определить, откуда выбрасывается это исключение.
Таким образом, чтобы немного сузить его, вы можете начать отладку двух классов, связанных с вашими индексами, которые не работают:
Magento\Catalog\Model\Indexer\Category\Product
=> catalog_category_product index
Magento\Catalog\Model\Indexer\Product\Category
=> каталог_продукта_категория указатель
К счастью, второй расширяет первый, поэтому у вас есть одна отправная точка.
Вы должны иметь в виду, что каждый из этого класса индексатора использует классы строк действия для обработки переиндексации:
Magento\Catalog\Model\Indexer\Product\Category\Action\Rows
Magento\Catalog\Model\Indexer\Category\Product\Action\Rows
Для меня это то, где вы должны начать отладку, поскольку эти классы строк действий являются прямыми классами, которые переиндексируют эти два индекса.
Я действительно надеюсь, что это поможет вам найти вашу проблему.