backend can now report per row errors to the headend and will survive peer errors without killing the whole request, closes #40