This piece of code reproduces the issue.
As you can see the try except does not work import asyncdispatch, asyncfile var n = 0 var files: seq[AsyncFile] while n < 1024: try: let file = openAsync("/dev/null", fmRead) files.add(file) n += 1 except IOError: echo "Error" asyncCheck sleepAsync(1000) n -= 1 for i in 0 .. n: files[i].close() Run