there's no need for try/yield/finally - this function isn't being run by run_tasks() or contextutil.nested()