{"record":{"id":"5e33a6f3a8ae7b29","repo":"apache/seatunnel","slug":"get-http","errorCode":null,"errorMessage":"GET {} -> HTTP {}","messagePattern":"GET (.+?) -> HTTP (.+?)","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"seatunnel-engine/seatunnel-engine-server/src/main/java/org/apache/seatunnel/engine/server/rest/service/BaseLogService.java","lineNumber":95,"sourceCode":"            connection.setRequestMethod(\"GET\");\n            connection.setConnectTimeout(5000);\n            connection.setReadTimeout(5000);\n\n            // Basic Auth\n            if (user != null && pass != null) {\n                String auth = user + \":\" + pass;\n                String token =\n                        Base64.getEncoder().encodeToString(auth.getBytes(StandardCharsets.UTF_8));\n                connection.setRequestProperty(AUTHORIZATION_HEADER, BASIC_PREFIX + token);\n            }\n\n            connection.connect();\n\n            int code = connection.getResponseCode();\n            if (code == HttpURLConnection.HTTP_OK) {\n                return readResponseBody(connection.getInputStream());\n            } else {\n                log.warn(\"GET {} -> HTTP {}\", urlString, code);\n                drainErrorStream(connection);\n            }\n        } catch (IOException e) {\n            log.error(\"Send GET failed: url={}, err={}\", urlString, ExceptionUtils.getMessage(e));\n        } finally {\n            if (connection != null) {\n                connection.disconnect();\n            }\n        }\n        return null;\n    }\n\n    private String readResponseBody(InputStream is) throws IOException {\n        try (InputStream input = is;\n                ByteArrayOutputStream output = new ByteArrayOutputStream()) {\n\n            byte[] buf = new byte[4096];\n            int len;","sourceCodeStart":77,"sourceCodeEnd":113,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-engine/seatunnel-engine-server/src/main/java/org/apache/seatunnel/engine/server/rest/service/BaseLogService.java#L77-L113","documentation":"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.","triggerScenarios":"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.","commonSituations":"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.","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."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"// preflight the endpoint before fetching logs\nHttpURLConnection c = (HttpURLConnection) new URL(urlString).openConnection();\nc.setConnectTimeout(3000);\nif (c.getResponseCode() != 200) { handle non-OK status explicitly; }","typeGuard":null,"tryCatchPattern":"try {\n    String body = sendGet(urlString);\n} catch (IOException e) {\n    log.error(\"log endpoint unreachable: {}, err={}\", urlString, e.getMessage());\n}","preventionTips":["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"],"tags":["http","rest-api","logging","zeta-engine"],"backgroundTag":"http-error-response","analyzedSha":"cf67b549a7a6c35fa0beb12d83c62892427ea919","analyzedAt":"2026-09-10T21:44:55.265Z","contentChangedAt":"2026-09-10T21:44:55.265Z","schemaVersion":2},"datasetVersion":"2026-09-14T16:17:12.679Z"}