{"record":{"id":"4f39f2d00f8b3576","repo":"eclipse-vertx/vert.x","slug":"only-socket-address-are-currently-supported","errorCode":null,"errorMessage":"Only socket address are currently supported","messagePattern":"Only socket address are currently supported","errorType":"validation","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"vertx-core/src/main/java/io/vertx/core/http/impl/HttpClientImpl.java","lineNumber":381,"sourceCode":"        host = defaultHost;\n      }\n      server = SocketAddress.inetSocketAddress(port, host);\n    } else if (addr instanceof SocketAddress) {\n      server = (SocketAddress) addr;\n      if (port == null) {\n        port = connect.getPort();\n      }\n      if (host == null) {\n        host = connect.getHost();\n      }\n      if (port == null) {\n        port = server.port();\n      }\n      if (host == null) {\n        host = server.host();\n      }\n    } else {\n      throw new IllegalArgumentException(\"Only socket address are currently supported\");\n    }\n    HttpVersion protocol = connect.getProtocolVersion();\n    List<HttpVersion> protocols;\n    if (protocol == null) {\n      protocols = versions;\n    } else {\n      protocols = List.of(protocol);\n    }\n    HostAndPort authority = HostAndPort.create(host, port);\n    ClientSSLOptions sslOptions = sslOptions(verifyHost, connect, this.sslOptions);\n    ProxyOptions proxyOptions = computeProxyOptions(connect.getProxyOptions(), server);\n    ClientMetrics clientMetrics = httpMetrics != null ? httpMetrics.createEndpointMetrics(server, 1) : null;\n    Boolean ssl = connect.isSsl();\n    boolean useSSL = ssl != null ? ssl : defaultSsl;\n    checkClosed();\n    HttpConnectParams params = new HttpConnectParams(protocols, sslOptions, proxyOptions, useSSL);\n    return transport.connect(vertx.getOrCreateContext(), server, authority, params, clientMetrics)\n      .map(conn -> new UnpooledHttpClientConnection(conn).init());","sourceCodeStart":363,"sourceCodeEnd":399,"githubUrl":"https://github.com/eclipse-vertx/vert.x/blob/fb308bd8c3f12c79f4ae89bef67fadf6c80d036e/vertx-core/src/main/java/io/vertx/core/http/impl/HttpClientImpl.java#L363-L399","documentation":"HttpClientImpl.connect resolves the target server from the connect options' server address (used for Unix domain sockets / socket-address based routing). Only InetSocketAddress-like SocketAddress (inet) instances are supported; any other SocketAddress kind throws this IllegalArgumentException.","triggerScenarios":"Passing connect options whose server address is a non-inet SocketAddress implementation (e.g. a domain socket address variant not handled by the code path, or a custom SocketAddress) to HttpClientImpl.connect.","commonSituations":"Configuring Unix domain socket addresses on a client code path that only supports TCP socket addresses; passing a proxy or routing address of the wrong type; mixing domain-socket examples written for servers into client connect options.","solutions":["Use an inet SocketAddress (host + port) via SocketAddress.inetSocketAddress(port, host).","Remove the serverAddress from connect options if you did not intend address-based routing.","If Unix domain sockets are needed, verify the Vert.x version supports that path or upgrade."],"exampleFix":"// before\noptions.setServer(new DomainSocketAddress(\"/tmp/app.sock\"));\n// after\noptions.setServer(SocketAddress.inetSocketAddress(8080, \"localhost\"));","handlingStrategy":"validation","validationCode":"SocketAddress server = connectOptions.getServer();\nif (server != null && !server.isInetSocket()) {\n  throw new IllegalArgumentException(\"Use an inet SocketAddress for HTTP client connect\");\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Build addresses only via SocketAddress.inetSocketAddress.","Don't mix domain-socket server examples into client connect options.","Check SocketAddress.isInetSocket before assigning to options."],"tags":["http-client","socket-address","unsupported"],"backgroundTag":"unsupported-operation","analyzedSha":"fb308bd8c3f12c79f4ae89bef67fadf6c80d036e","analyzedAt":"2026-09-06T11:37:12.241Z","contentChangedAt":"2026-09-06T11:37:12.241Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}