We have to have the wrap-retry middleware inside not outside the murmur hashing, because otherwise the body we pass in on retry is an inputstream which is exhausted the second time around.