apache/seatunnel · warning

Failed to get HTTP port from member {}, skip.

Error message

Failed to get HTTP port from member {}, skip.

What it means

When enumerating log file names across all cluster nodes, LogService asks each member for its HTTP port via GetNodeHttpPortOperation. If that call fails for a member (timeout, member unreachable, operation exception), this warning is logged and the member is skipped, so its logs are absent from the aggregated list.

Source

Thrown at seatunnel-engine/seatunnel-engine-server/src/main/java/org/apache/seatunnel/engine/server/rest/service/LogService.java:81

        HttpConfig httpConfig =
                seaTunnelServer.getSeaTunnelConfig().getEngineConfig().getHttpConfig();
        String contextPath = httpConfig.getContextPath();

        List<Tuple3<String, String, String>> allLogNameList = new ArrayList<>();

        for (Member member : nodeEngine.getClusterService().getMembers()) {
            String host = member.getAddress().getHost();
            int nodeHttpPort;
            try {
                nodeHttpPort =
                        (int)
                                NodeEngineUtil.sendOperationToMemberNode(
                                                nodeEngine,
                                                new GetNodeHttpPortOperation(),
                                                member.getAddress())
                                        .get();
            } catch (Exception e) {
                log.warn("Failed to get HTTP port from member {}, skip.", member.getAddress(), e);
                continue;
            }

            String url = "http://" + host + ":" + nodeHttpPort + contextPath;
            String logUrl = url + REST_URL_GET_ALL_LOG_NAME;

            String allName =
                    httpConfig.isEnableBasicAuth()
                            ? sendGet(
                                    logUrl,
                                    httpConfig.getBasicAuthUsername(),
                                    httpConfig.getBasicAuthPassword())
                            : sendGet(logUrl);

            if (StringUtils.isBlank(allName)) {
                log.warn("GET {} returned empty body (null/empty). Skip this node.", logUrl);
                continue;
            }

View on GitHub (pinned to cf67b549a7)

Solutions

  1. Check that the reported member is alive and its HTTP connector is enabled (http config in seatunnel.yaml / hazelcast config).
  2. Fix network/firewall so the coordinator can reach the member's REST port.
  3. Restart the failed member; verify the REST endpoint responds locally on that node.
  4. If intentional (node being removed), ignore the warning or exclude the member from the cluster properly.

Example fix

// before (seatunnel.yaml, http disabled on one node)
// http: enable: false
// after
// http: enable: true
//   port: 8080
Defensive patterns

Strategy: retry

Validate before calling

// pre-check each member is reachable before listing logs
// for (Member m : members) {
//     if (!isPortOpen(m.getAddress().getHost(), restPort(m), timeoutMs)) {
//         skip(m); // avoid the warn+skip path
//     }
// }

Try / catch

try {
    int port = (int) NodeEngineUtil.sendOperationToMemberNode(nodeEngine, new GetNodeHttpPortOperation(), member.getAddress()).get();
} catch (Exception e) {
    log.warn("Member {} unreachable for HTTP port, skipping logs", member.getAddress(), e);
}

Prevention

When it happens

Trigger: Calling the all-log-names REST endpoint when one member is down, network partitioned, or its REST/HTTP service failed to start (port conflict, http disabled in config), making GetNodeHttpPortOperation hang or throw.

Common situations: Node crashed or being decommissioned during the request; seatunnel http port disabled/misconfigured on one node; firewall blocking inter-member REST port; slow node exceeding operation timeout.

Understand the failure class

Background: ECONNREFUSED and "connection refused" / "could not connect to server" errors: what they mean and how to fix them — this error's family across 44 libraries.

Related errors


AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10). Data as JSON: /api/errors/e479e1cd806e68c0. Report an issue: GitHub.