Store the errors in memory rather than StringIO
Make handle_error optional