this is async call, so you can't close resource in try