{"record":{"id":"163bf328d4e078bf","repo":"aeron-io/aeron","slug":"unresolved-endpoint-name-resolver-udpnameresolutiontransport","errorCode":null,"errorMessage":"unresolved - endpoint=, name-resolver=","messagePattern":"unresolved - endpoint=, name-resolver=","errorType":"exception","errorClass":"UnknownHostException","httpStatus":null,"severity":"error","filePath":"aeron-driver/src/main/java/io/aeron/driver/media/UdpNameResolutionTransport.java","lineNumber":186,"sourceCode":"    /**\n     * Get the {@link InetSocketAddress} for a host and port endpoint using the default name resolver.\n     *\n     * @param hostAndPort  to parse.\n     * @param nameResolver to resolve a name to an {@link InetAddress}.\n     * @return the resolved {@link InetSocketAddress} if successful or null if not.\n     */\n    public static InetSocketAddress getInetSocketAddress(final String hostAndPort, final NameResolver nameResolver)\n    {\n        InetSocketAddress address = null;\n\n        try\n        {\n            address = SocketAddressParser.parse(\n                hostAndPort, CommonContext.ENDPOINT_PARAM_NAME, false, nameResolver);\n\n            if (address.isUnresolved())\n            {\n                throw new UnknownHostException(\n                    \"unresolved - \" + CommonContext.ENDPOINT_PARAM_NAME + \"=\" + hostAndPort +\n                    \", name-resolver=\" + nameResolver.getClass().getName());\n            }\n        }\n        catch (final UnknownHostException ex)\n        {\n            LangUtil.rethrowUnchecked(ex);\n        }\n\n        return address;\n    }\n}\n","sourceCodeStart":168,"sourceCodeEnd":199,"githubUrl":"https://github.com/aeron-io/aeron/blob/6d60124e15e35c11b49ba2e3c2c2858a09a18803/aeron-driver/src/main/java/io/aeron/driver/media/UdpNameResolutionTransport.java#L168-L199","documentation":"UdpNameResolutionTransport.getInetSocketAddress could not resolve the endpoint host:port for a name-resolution-driven transport. SocketAddressParser.parse produced an unresolved InetSocketAddress and an UnknownHostException naming the endpoint value and resolver is thrown.","triggerScenarios":"A transport that resolves its endpoint dynamically (UdpNameResolutionTransport) receives a host name the configured NameResolver cannot resolve; getInetSocketAddress detects address.isUnresolved() and throws.","commonSituations":"Name-service (e.g. Aeron name resolution service) not running or unreachable, hostname absent from the discovery service, DNS misconfiguration in containers, or race where the peer has not yet registered its address.","solutions":["Verify the name resolution service is running and contains the requested endpoint name.","Check the endpoint string for typos or unsupported formats.","Use a literal IP if dynamic resolution is unnecessary.","Retry after ensuring the peer has registered its address with the resolver."],"exampleFix":"// before\n\"aeron:udp?endpoint=peer-3.cluster.internal:20111\" // name not registered\n// after\n// register peer-3.cluster.internal in the name service, or use:\n\"aeron:udp?endpoint=10.1.2.3:20111\"","handlingStrategy":"validation","validationCode":"if (hostAndPort == null || hostAndPort.isEmpty()) throw new IllegalArgumentException(\"endpoint required\");\nInetAddress a = InetAddress.getByName(hostPart(hostAndPort));\nif (a.isAnyLocalAddress() && !allowWildcard) throw new IllegalArgumentException(\"unresolvable\");","typeGuard":null,"tryCatchPattern":"try {\n    InetSocketAddress addr = transport.getInetSocketAddress();\n} catch (UnknownHostException e) {\n    logger.warn(\"name not yet registered: {}\", e.getMessage());\n    // retry after resolver catches up\n}","preventionTips":["Ensure peers register with the name service before connecting","Add retry/backoff for startup ordering races","Verify resolver service liveness with health checks"],"tags":["network","dns","name-resolution","udp"],"backgroundTag":"dns-resolution-failed","analyzedSha":"6d60124e15e35c11b49ba2e3c2c2858a09a18803","analyzedAt":"2026-09-12T11:17:07.683Z","contentChangedAt":"2026-09-12T11:17:07.683Z","schemaVersion":2},"datasetVersion":"2026-09-15T23:17:13.987Z"}