fix: better handling of xenstore read errors and passing them up the stack