1009 io error handling

Not required, but would be good if possible: can we move this to cljx in a way that makes sense? We'll need to figure out similar error handling as this PR on the cljs side soon as well.