docs: private void scheduleFailedHostRetry(final HttpServerExchange exchange) {
          final int retry = connectionPoolManager.getProblemServerRetry();
          // only schedule a retry task if the node is not available
          if (retry > 0 && !connectionPoolManager.isAvailable()) {
              WorkerUtils.executeAfter(exchange.getIoThread(), new Runnable() {
                  @Override
                  public void run() {
                      if (closed) {
                          return;
                      }
  
                      UndertowLogger.PROXY_REQUEST_LOGGER.debugf("Attempting to reconnect to failed host %s", getUri());
                      client.connect(new ClientCallback<ClientConnection>() {
                          @Override
                          public void completed(ClientConnection result) {
                              UndertowLogger.PROXY_REQUEST_LOGGER.debugf("Connected to previously failed host %s, returning to service", getUri());
                              if (connectionPoolManager.clearError()) {
                                  // In case the node is available now, return the connection
                                  final ConnectionHolder connectionHolder = new ConnectionHolder(result);
                                  final HostThreadData data = getData();
                                  result.getCloseSetter().set(new ChannelListener<ClientConnection>() {
                                      @Override
                                      public void handleEvent(ClientConnection channel) {
                                          handleClosedConnection(data, connectionHolder);
                                      }
                                  });
                                  data.connections++;
                                  returnConnection(connectionHolder);
                              } else {
                                  // Otherwise reschedule the retry task
                                  scheduleFailedHostRetry(exchange);
                              }
                          }
  
                          @Override
                          public void failed(IOException e) {
                              UndertowLogger.PROXY_REQUEST_LOGGER.debugf("Failed to reconnect to failed host %s", getUri());
                              connectionPoolManager.handleError();
                              scheduleFailedHostRetry(exchange);
                          }
                      }, bindAddress, getUri(), exchange.getIoThread(), ssl, exchange.getConnection().getByteBufferPool(), options);
                  }
              }, retry, TimeUnit.SECONDS);
          }
      }