handle IO errors