don't silently ignore IOException