I'm still a bit wary of this because it could retry forever... Could we raise an error after the first couple of retries fail? It would be worth seeing what testing that scenario to see what the user experience is.