add needle reading error propagation