public boolean isRetryable5xxResponse(
            HttpRequestMessage zuulRequest, HttpResponse originResponse) { // int retryNum, int maxRetries) {
        if (isRequestReplayable()) {
            int status = originResponse.status().code();
            if (status == 503 || originIndicatesRetryableInternalServerError(originResponse)) {
                return true;
            }
            // Retry if this is an idempotent http method AND status code was retriable for idempotent methods.
            else if (RETRIABLE_STATUSES_FOR_IDEMPOTENT_METHODS.get().contains(status)
                    && IDEMPOTENT_HTTP_METHODS.contains(zuulRequest.getMethod().toUpperCase(Locale.ROOT))) {
                return true;
            }
        }
        return false;
    }
Request is replayable on a different origin IFF
A) we have not started to send response back to the client  AND
B) we have not lost any of its body chunks
zuul-core/src/main/java/com/netflix/zuul/filters/endpoint/ProxyEndpoint.java