should onError be draining the queue before sending the error?