apache/seatunnel · warning
GET -> HTTP
Error message
GET {} -> HTTP {} What it means
BaseLogService.sendGet() performs an HTTP GET to a node's log endpoint. If the response status is not 200, it logs this warning with the URL and status code, drains the error stream, and returns no body. This indicates the remote log-service endpoint responded but with an error status.
Solutions
- Check the exact HTTP status code in the log line and address it specifically (404 → enable REST/HTTP service on the node).
- Verify hazelcast/seatunnel REST port configuration (e.g. jetty server port) and firewall rules.
- Confirm the target member is alive and part of the cluster.
- Retry the request; transient 5xx from a loaded node often clears.
Defensive patterns
Strategy: validation
Validate before calling
// preflight the endpoint before fetching logs
HttpURLConnection c = (HttpURLConnection) new URL(urlString).openConnection();
c.setConnectTimeout(3000);
if (c.getResponseCode() != 200) { handle non-OK status explicitly; } Try / catch
try {
String body = sendGet(urlString);
} catch (IOException e) {
log.error("log endpoint unreachable: {}, err={}", urlString, e.getMessage());
} Prevention
- Enable the SeaTunnel REST/HTTP service on all nodes before using log endpoints
- Validate the port and member address before constructing the URL
- Check auth/proxy settings if requests traverse a gateway
- Retry transient 5xx with backoff
When it happens
Trigger: GET to a cluster member's REST log URL returns e.g. 404 (REST endpoints disabled), 401/403 (auth), or 5xx (remote node error); sendGet detects code != HTTP_OK.
Common situations: seatunnel REST service not enabled (Jetty port not configured) on the target node; wrong port in the URL; requesting logs from a node that just left the cluster; reverse proxy returning 502/503.
Understand the failure class
Background: "API error: {status}" and "HTTP 401/403/404/429/5xx" errors: non-2xx HTTP responses explained — this error's family across 27 libraries.
Related errors
- Logger level request to member
- Failed to get checkpoint data from master node…
- GET returned empty body (null/empty). Skip this node.
- http post response failed. statusCode
- Ignored malformed cluster health metrics token(s) from…
AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10).
Data as JSON: /api/errors/5e33a6f3a8ae7b29.
Report an issue: GitHub.
Appendix: source
Thrown at seatunnel-engine/seatunnel-engine-server/src/main/java/org/apache/seatunnel/engine/server/rest/service/BaseLogService.java:95
connection.setRequestMethod("GET");
connection.setConnectTimeout(5000);
connection.setReadTimeout(5000);
// Basic Auth
if (user != null && pass != null) {
String auth = user + ":" + pass;
String token =
Base64.getEncoder().encodeToString(auth.getBytes(StandardCharsets.UTF_8));
connection.setRequestProperty(AUTHORIZATION_HEADER, BASIC_PREFIX + token);
}
connection.connect();
int code = connection.getResponseCode();
if (code == HttpURLConnection.HTTP_OK) {
return readResponseBody(connection.getInputStream());
} else {
log.warn("GET {} -> HTTP {}", urlString, code);
drainErrorStream(connection);
}
} catch (IOException e) {
log.error("Send GET failed: url={}, err={}", urlString, ExceptionUtils.getMessage(e));
} finally {
if (connection != null) {
connection.disconnect();
}
}
return null;
}
private String readResponseBody(InputStream is) throws IOException {
try (InputStream input = is;
ByteArrayOutputStream output = new ByteArrayOutputStream()) {
byte[] buf = new byte[4096];
int len;View on GitHub (pinned to cf67b549a7)