The auto-prune cron job fails in a normal PHP environment due to too large of a transaction. This occurs if its trying to prune a very large number of topics. In my case this happens about 1,000 topics.
I have made a change for 3.1.x to limit prunes to 500 per cron attempt. Once there are no more topics being pruned then it sets the next prune time.