{"record":{"id":"91c212010e039b0d","repo":"apache/seatunnel","slug":"connect-failed-91c212","errorCode":"CONNECT_FAILED","errorMessage":"Connect influxdb failed, the url is: {%s}","messagePattern":"Connect influxdb failed, the url is: (.+?)","errorType":"error_code","errorClass":"InfluxdbConnectorException","httpStatus":null,"severity":"critical","filePath":"seatunnel-connectors-v2/connector-influxdb/src/main/java/org/apache/seatunnel/connectors/seatunnel/influxdb/client/InfluxDBClient.java","lineNumber":77,"sourceCode":"                                        .build();\n                        Request build = request.newBuilder().url(httpUrl).build();\n                        return chain.proceed(build);\n                    }\n                });\n        InfluxDB influxdb =\n                new InfluxDBImpl(\n                        config.getUrl(),\n                        StringUtils.isEmpty(config.getUsername())\n                                ? StringUtils.EMPTY\n                                : config.getUsername(),\n                        StringUtils.isEmpty(config.getPassword())\n                                ? StringUtils.EMPTY\n                                : config.getPassword(),\n                        clientBuilder,\n                        format);\n        String version = influxdb.version();\n        if (!influxdb.ping().isGood()) {\n            throw new InfluxdbConnectorException(\n                    InfluxdbConnectorErrorCode.CONNECT_FAILED,\n                    String.format(\"Connect influxdb failed, the url is: {%s}\", config.getUrl()));\n        }\n        log.info(\"connect influxdb successful. sever version :{}.\", version);\n        return influxdb;\n    }\n\n    public static void setWriteProperty(InfluxDB influxdb, SinkConfig sinkConfig) {\n        String rp = sinkConfig.getRp();\n        if (!StringUtils.isEmpty(rp)) {\n            influxdb.setRetentionPolicy(rp);\n        }\n    }\n\n    public static InfluxDB getWriteClient(SinkConfig sinkConfig) throws ConnectException {\n        InfluxDB influxdb = getInfluxDB(sinkConfig);\n        influxdb.setDatabase(sinkConfig.getDatabase());\n        setWriteProperty(getInfluxDB(sinkConfig), sinkConfig);","sourceCodeStart":59,"sourceCodeEnd":95,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-connectors-v2/connector-influxdb/src/main/java/org/apache/seatunnel/connectors/seatunnel/influxdb/client/InfluxDBClient.java#L59-L95","documentation":"InfluxDBClient.getInfluxDB builds an InfluxDB client and verifies connectivity by calling ping(); if ping() does not return isGood(), it throws InfluxdbConnectorException with code CONNECT_FAILED including the configured URL. The client object was created but the server did not respond with a healthy pong, so the source/sink cannot proceed.","triggerScenarios":"InfluxDB server unreachable at config.getUrl() (wrong host/port), server up but the /ping endpoint returning non-OK (e.g. auth enabled and credentials wrong), proxy/firewall dropping requests, or server overloaded returning 5xx on ping.","commonSituations":"Typos in the url config (http vs https, wrong port instead of 8086), InfluxDB container not started in dev environments, reverse TLS termination misconfigured, credentials rotated so the authenticated ping fails, Kubernetes NetworkPolicy blocking pod-to-pod traffic.","solutions":["Verify the URL is reachable: curl http://<host>:8086/ping should return HTTP 204","Check username/password in the connector config against the InfluxDB instance (auth-enabled servers reject bad credentials even on ping)","Confirm network reachability from the SeaTunnel worker (firewall, security groups, K8s NetworkPolicy)","Ensure the protocol scheme matches (https if TLS is enabled) and InfluxDB is listening on the configured port"],"exampleFix":"// before\nurl = \"http://influx:8087\"\n// after (correct port)\nurl = \"http://influx:8086\"","handlingStrategy":"retry","validationCode":"// Pre-flight check before job submission\nHttpURLConnection c = (HttpURLConnection) new URL(url + \"/ping\").openConnection();\nc.setRequestProperty(\"Authorization\", \"Token \" + token);\nif (c.getResponseCode() != 204) throw new IllegalStateException(\"InfluxDB ping failed: \" + c.getResponseCode());","typeGuard":null,"tryCatchPattern":"try {\n    InfluxDB db = InfluxDBClient.getInfluxDB(config);\n} catch (InfluxdbConnectorException e) {\n    if (e.getCode() == InfluxdbConnectorErrorCode.CONNECT_FAILED) {\n        log.error(\"InfluxDB unreachable at {} — check host/port/auth\", config.getUrl());\n    }\n    throw e;\n}","preventionTips":["curl /ping from the SeaTunnel worker host before submitting jobs","Verify scheme (http/https) and port (default 8086) in config","Check credentials whenever InfluxDB auth is enabled","Ensure firewall/NetworkPolicy allows worker-to-InfluxDB traffic"],"tags":["influxdb","connectivity","ping","network"],"backgroundTag":"connection-refused","analyzedSha":"cf67b549a7a6c35fa0beb12d83c62892427ea919","analyzedAt":"2026-09-10T21:44:55.265Z","contentChangedAt":"2026-09-10T21:44:55.265Z","schemaVersion":2},"datasetVersion":"2026-09-14T11:17:12.474Z"}