Looks like in EPiServer.Find.Cms 12.2.9 the content indexing is fragile and broken. At least, we have noticed major problems never seen before :)
The main issue is that the content indexing is not very robust. For example, it will fail if a content area contains a reference to a removed page because the indexer will no longer find the page. Normally Episerver checks if the rerefences are still valid to prevent this kind of errors. The implementation is in EPiServer.Find.Cms.ContentEventIndexer in method IndexPageQueue.
The indexing queue is in database table tblFindIndexQueue. All indexable content modifications will get queued here (the Scheduled Job "EPiServer Find Content Indexing Job" doesn't seem to use this table). If an entry fails, it will be stuck on the queue and prevent other entries from getting indexed.
If you are having problems with indexing, just check if an entry is stuck:
SELECT * FROM [tblFindIndexQueue];
If the query returns rows, and they stay the same for minutes, you could just delete the top row and see if this fixes the issue. But most likely the same page will get stuck when you modify it next time. To prevent this, you can fix the old references on a content area by modifying the area and saving the page - this will remove the obsolete references and prevent the indexing from failing later.
This is of course a workaround until the content indexing is fixed :)
We are trying to remove all items from the queue that has been deleted. It seems like we have missed some cases. I will look into this, and create a bug when I have reproduced it.
Bug reported and worked on: FIND-1492