Zend certified PHP/Magento developer

Magento 2.3 Catalog Inventory index tables are missing records

We recently upgraded from 2.1 CE to 2.3

We are having a lot of issues with the catalog inventory tables in the database.

All products in our store are set to “in stock” status. Cache is totally flushed, and I have reindexed multiple times. This is not a configuration issue.

Inventory stock status records are not being generated into the “cataloginventory_stock_status” table. Each time I reindex, some are added, but others disappear. We have 12050 records, all on the same website, but only about 11500 are ever included in this table.

The “cataloginventory_stock_status_idx” table is empty. I am not sure if this is the correct behavior.

The “cataloginventory_stock_status_replica” table also has around 11000 records out of 12050. They are not the same records missing as the cataloginventory_stock_status table.

I can manually import missing records to the table, but after a few hours, records start disappearing again.

Has anyone seen anything like this? Any suggestions on how to get the index working properly?