I have to do this periodically when the error presents itself. For my server I have to do these things:
SSH in as root. > CD to the /var/www/vhosts/ or where ever the site is stored > SU to the client's web user > and then I have to denote where the php version is located. In my instance it's /opt/plesk/php/7.0/bin/php then add -d and I have to increase the memory before typing bin/magento and setup:di:compile, so from command line # [location of php on my server]php/[ver]/bin/php -d memory_limit=8G bin/magento setup:di:compile
Then I exit that user after all the files are loaded as the web user, so I don't have to back and chown all the files that came in as root (if hadn't SU). Next run:
php bin/magento indexer:status
php bin/magento cache:flush
php bin/magento cache:clean
php bin\magento indexer:reindex
If they don't run or error out, you may have to increase your memory like above, for each command.
Sometimes, this is just a normal notification from Magento 2 system to indicate that your store needs to be reindexed to update information.
There may be another cause of this issue that is related to cronjob on your server. By default, the reindex process happens automatically on your server if cronjobs are set properly. If there is anything wrong with your cronjobs and the reindex process does not start automatically => you will have to start the reindex process manually
The following command will reindex all the indexers in Magento 2 and it will resolve your problem
php bin/magento indexer:reindex
<< Snipped >>