Consider moving the retry into drain queue - might make it a little clearer what is going in.