Reindex in it's own transaction to prevent double indexes
Error catching and reporting added