I have solve a quite weird problem:
Frontend (product category or search results)
Item (Magento\Downloadable\Model\Link) with the same ID "1240" already exists.
(with a huge error stack)
(Once I figured out which products caused the error):
Backend, product page:
Warning: Illegal string offset 'is_in_stock' in vendor/magento/module-catalog-inventory/Ui/DataProvider/Product/Form/Modifier/AdvancedInventory.php on line 87
Having check downloadable_link table, which has a unique index on link_id, there was no duplicates.
In this case, reindexing causes no error and solves nothing.