{"record":{"id":"35c916ade83d9569","repo":"aeron-io/aeron","slug":"could-not-re-resolve-endpoint-endpoint","errorCode":null,"errorMessage":"could not re-resolve: endpoint={endpoint}","messagePattern":"could not re-resolve: endpoint=(.+?)","errorType":"exception","errorClass":"AeronEvent","httpStatus":null,"severity":"error","filePath":"aeron-driver/src/main/java/io/aeron/driver/DriverConductor.java","lineNumber":3879,"sourceCode":"        private final CommandResult<InetSocketAddress> resolvedAddressResult;\n\n        ReResolveEndpointAddress(\n            final String endpoint, final SendChannelEndpoint channelEndpoint, final InetSocketAddress address)\n        {\n            this.endpoint = endpoint;\n            this.channelEndpoint = channelEndpoint;\n            this.address = address;\n            resolvedAddressResult = nativeResourceAgentProxy.reResolveAddress(endpoint, ENDPOINT_PARAM_NAME);\n        }\n\n        boolean execute()\n        {\n            final InetSocketAddress newAddress = resolvedAddressResult.get();\n            if (null != newAddress)\n            {\n                if (newAddress.isUnresolved())\n                {\n                    throw new AeronEvent(\"could not re-resolve: \" + ENDPOINT_PARAM_NAME + \"=\" + endpoint);\n                }\n\n                if (ChannelEndpointStatus.ACTIVE == channelEndpoint.status())\n                {\n                    if (!Objects.equals(address, newAddress))\n                    {\n                        senderProxy.onResolutionChange(channelEndpoint, endpoint, newAddress);\n                    }\n                }\n                return true;\n            }\n            return false;\n        }\n    }\n}\n","sourceCodeStart":3861,"sourceCodeEnd":3895,"githubUrl":"https://github.com/aeron-io/aeron/blob/6d60124e15e35c11b49ba2e3c2c2858a09a18803/aeron-driver/src/main/java/io/aeron/driver/DriverConductor.java#L3861-L3895","documentation":"Same re-resolution failure as 624 but for the endpoint= parameter of a channel URI. The driver's periodic re-resolution of the endpoint hostname produced an unresolved InetSocketAddress, so it throws AeronEvent instead of silently updating the endpoint address.","triggerScenarios":"Active channel with endpoint=<hostname>:port whose DNS entry fails to resolve when the driver's re-resolution timer fires; resolver returns null-or-unresolved results.","commonSituations":"Long-running connections to hosts whose DNS records were removed/changed; split-horizon DNS in Kubernetes where the driver host cannot resolve peer names; VPN or network namespace changes breaking name resolution.","solutions":["Restore DNS resolution for the endpoint hostname and confirm with nslookup.","Use an IP literal in endpoint= for critical channels.","Register a custom NameResolver that caches last-known-good addresses.","Handle the AeronEvent by keeping the prior address and retrying resolution later."],"exampleFix":"// before\nctx.addSubscription(\"aeron:udp?endpoint=media-host.internal:40456\", streamId);\n// after\nctx.addSubscription(\"aeron:udp?endpoint=media-host.internal:40456\", streamId);\n// plus configure NameResolver with cache:\nMediaDriver.launch(new MediaDriver.Context().nameResolver(new CachedRecordingNameResolver()));","handlingStrategy":"retry","validationCode":"InetSocketAddress ep = new InetSocketAddress(endpointHost, endpointPort);\nif (ep.isUnresolved()) { throw new IllegalArgumentException(\"endpoint unresolvable at config time: \" + endpointHost); }","typeGuard":null,"tryCatchPattern":"try {\n    driver.awaitReResolution();\n} catch (AeronEvent e) {\n    if (e.getMessage().startsWith(\"could not re-resolve: endpoint=\")) {\n        retainLastKnownGoodAddress();\n        scheduleRetry();\n    } else { throw e; }\n}","preventionTips":["Resolve endpoint hostnames at startup and fail fast if unresolved","Use static IPs for critical media endpoints","Alert on DNS failures for hosts referenced in channel URIs"],"tags":["aeron","dns","network","resolution"],"backgroundTag":"request-timeout","analyzedSha":"6d60124e15e35c11b49ba2e3c2c2858a09a18803","analyzedAt":"2026-09-12T11:17:07.683Z","contentChangedAt":"2026-09-12T11:17:07.683Z","schemaVersion":2},"datasetVersion":"2026-09-16T04:17:20.429Z"}