When populating one single index or all indexes there is no recovery if something goes wrong. we may need to add error handling when populating indexes.
the error handling may need to take place at 2 different levels:
* at the index level when we create or populate a single index: if something goes wrong with populating the index we should go back to the initial state of the index table. (if empty maybe we can purgedata otherwise we can use snapshot)
*and when we do populate all index the recovery may need to deal with all the updated indexes if something goes wrong.
**One way to deal with it is to restore all the indexes to their original state . and the user can correct the issue and rerun the command again to populate al indexes
** another way may be to restore only the index that caused the issue. and the user can correct the issue and then run the populate index on the remaining index