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.
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)
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
- Log file path is empty, get logRef : %s
- Job %s not found
- No checkpoint found for jobId=${jobId}, restoreMode=${restor
- Unsupported restore mode for checkpoint loading: ${restoreMo
AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10).
Data as JSON: /api/errors/5e33a6f3a8ae7b29.
Report an issue: GitHub.