return exceptions should never escape to  run_until_finished