private boolean retry(HttpRequest request, Throwable thrown, int attempt) {
        breaker.failure(thrown);
        if (   (thrown instanceof IOException)               // General IO problems.
            //  Thrown by HTTP2Session.StreamsState.reserveSlot, likely on GOAWAY from server
            || (thrown instanceof IllegalStateException && "session closed".equals(thrown.getMessage()))
            || thrown instanceof RetryableException
        ) {
            log.log(FINER, thrown, () -> "Failed attempt " + attempt + " at " + request);
            return retry(request, attempt);
        }

        log.log(FINE, thrown, () -> "Failed attempt " + attempt + " at " + request);
        return false;
    }
Retries all IOExceptions, unless error rate has converged to a value higher than the threshold,
or the user has turned off retries for this type of operation.
vespa-feed-client/src/main/java/ai/vespa/feed/client/impl/HttpRequestStrategy.java