{"record":{"id":"5b7e62dcbe67684e","repo":"eclipse-vertx/vert.x","slug":"domain-sockets-require-jdk-16-and-above-or-the-us","errorCode":null,"errorMessage":"Domain sockets require JDK 16 and above, or the usage of a native transport","messagePattern":"Domain sockets require JDK 16 and above, or the usage of a native transport","errorType":"exception","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"vertx-core/src/main/java/io/vertx/core/impl/transports/NioTransport.java","lineNumber":83,"sourceCode":"      case IPv4:\n        return new NioDatagramChannel(InternetProtocolFamily.IPv4);\n      case IPv6:\n        return new NioDatagramChannel(InternetProtocolFamily.IPv6);\n      default:\n        throw new UnsupportedOperationException();\n    }\n  }\n\n  @Override\n  public ChannelFactory<? extends DatagramChannel> datagramChannelFactory() {\n    return NioDatagramChannel::new;\n  }\n\n  @Override\n  public ChannelFactory<? extends Channel> channelFactory(boolean domainSocket) {\n    if (domainSocket) {\n      if (unixDomainSocketNioTransport == null) {\n        throw new IllegalArgumentException(\"Domain sockets require JDK 16 and above, or the usage of a native transport\");\n      }\n      return NioDomainSocketChannel::new;\n    } else {\n      return NioSocketChannel::new;\n    }\n  }\n\n  @Override\n  public ChannelFactory<? extends ServerChannel> serverChannelFactory(boolean domainSocket) {\n    if (domainSocket) {\n      if (unixDomainSocketNioTransport == null) {\n        throw new IllegalArgumentException(\"Domain sockets require JDK 16 and above, or the usage of a native transport\");\n      }\n      return NioServerDomainSocketChannel::new;\n    }\n    return NioServerSocketChannel::new;\n  }\n","sourceCodeStart":65,"sourceCodeEnd":101,"githubUrl":"https://github.com/eclipse-vertx/vert.x/blob/fb308bd8c3f12c79f4ae89bef67fadf6c80d036e/vertx-core/src/main/java/io/vertx/core/impl/transports/NioTransport.java#L65-L101","documentation":"Capability check in NioTransport.channelFactory: a Unix domain socket channel was requested, but no JDK16+ NioDomainSocketChannel support and no native-transport substitute is available, so the NIO transport cannot create domain-socket channels. The input at fault is the domainSocket=true request in the server/client options.","triggerScenarios":"Thrown at vertx-core/src/main/java/io/vertx/core/impl/transports/NioTransport.java:83 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Run on JDK 16+ or add a native transport (netty-transport-native-epoll/kqueue) to the classpath","Disable domain sockets and use TCP when neither is available"],"exampleFix":null,"handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"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"}