aeron-io/aeron · error · AeronEvent

could not re-resolve: endpoint=

Error message

could not re-resolve: endpoint={endpoint}

What it means

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.

Solutions

  1. Restore DNS resolution for the endpoint hostname and confirm with nslookup.
  2. Use an IP literal in endpoint= for critical channels.
  3. Register a custom NameResolver that caches last-known-good addresses.
  4. Handle the AeronEvent by keeping the prior address and retrying resolution later.

Example fix

// before
ctx.addSubscription("aeron:udp?endpoint=media-host.internal:40456", streamId);
// after
ctx.addSubscription("aeron:udp?endpoint=media-host.internal:40456", streamId);
// plus configure NameResolver with cache:
MediaDriver.launch(new MediaDriver.Context().nameResolver(new CachedRecordingNameResolver()));
Defensive patterns

Strategy: retry

Validate before calling

InetSocketAddress ep = new InetSocketAddress(endpointHost, endpointPort);
if (ep.isUnresolved()) { throw new IllegalArgumentException("endpoint unresolvable at config time: " + endpointHost); }

Try / catch

try {
    driver.awaitReResolution();
} catch (AeronEvent e) {
    if (e.getMessage().startsWith("could not re-resolve: endpoint=")) {
        retainLastKnownGoodAddress();
        scheduleRetry();
    } else { throw e; }
}

Prevention

When it happens

Trigger: 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.

Common situations: 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.

Understand the failure class

Background: Request timed out: what client-side request timeouts mean across libraries (Request timed out, TIMED_OUT, APITimeoutError) — this error's family across 39 libraries.

Related errors


AI-assisted analysis of aeron-io/aeron@6d60124e15 (2026-09-12). Data as JSON: /api/errors/35c916ade83d9569. Report an issue: GitHub.

Appendix: source

Thrown at aeron-driver/src/main/java/io/aeron/driver/DriverConductor.java:3879

        private final CommandResult<InetSocketAddress> resolvedAddressResult;

        ReResolveEndpointAddress(
            final String endpoint, final SendChannelEndpoint channelEndpoint, final InetSocketAddress address)
        {
            this.endpoint = endpoint;
            this.channelEndpoint = channelEndpoint;
            this.address = address;
            resolvedAddressResult = nativeResourceAgentProxy.reResolveAddress(endpoint, ENDPOINT_PARAM_NAME);
        }

        boolean execute()
        {
            final InetSocketAddress newAddress = resolvedAddressResult.get();
            if (null != newAddress)
            {
                if (newAddress.isUnresolved())
                {
                    throw new AeronEvent("could not re-resolve: " + ENDPOINT_PARAM_NAME + "=" + endpoint);
                }

                if (ChannelEndpointStatus.ACTIVE == channelEndpoint.status())
                {
                    if (!Objects.equals(address, newAddress))
                    {
                        senderProxy.onResolutionChange(channelEndpoint, endpoint, newAddress);
                    }
                }
                return true;
            }
            return false;
        }
    }
}

View on GitHub (pinned to 6d60124e15)