Because it is a static field  `HttpClient.Factory.createDefault();` in called on instantiating the HttpCommandExecutor.
If you are using on of the Constructors with `HttpClient.Factory httpClientFactory)` as parameter it is no neccesary to have the `HttpClient.Factory.createDefault();` And you will stock on exceptions inside this `HttpClient.Factory.createDefault();`

https://github.com/SeleniumHQ/selenium/blob/26c65c7a5c1be4558311e91802ce35942cfacee8/java/client/src/org/openqa/selenium/remote/HttpCommandExecutor.java#L48
private static final HttpClient.Factory defaultClientFactory = HttpClient.Factory.createDefault();
  private final URL remoteServer;
  private final HttpClient client;
  private final HttpClient.Factory httpClientFactory;
  private final Map<String, CommandInfo> additionalCommands;
  private CommandCodec<HttpRequest> commandCodec;
  private ResponseCodec<HttpResponse> responseCodec;
  private LocalLogs logs = LocalLogs.getNullLogger();
  public HttpCommandExecutor(URL addressOfRemoteServer) {
    this(emptyMap(), Require.nonNull("Server URL", addressOfRemoteServer));
  }
  public HttpCommandExecutor(ClientConfig config) {
    this(emptyMap(),
         Require.nonNull("HTTP client configuration", config),
         defaultClientFactory);
  }
  /**
   * Creates an {@link HttpCommandExecutor} that supports non-standard
   * {@code additionalCommands} in addition to the standard.
   *