Should probably include graceful handling of other classes of network/IO errors too
Should probably include graceful handling of other classes of network/IO errors too