Not sure how easily this can be fixed. Perhaps there should be a limit on its size?
I can see if I can run it completely asynchronously.