{"record":{"id":"4e2c795dd73a28ce","repo":"apache/seatunnel","slug":"connection-failed-4e2c79","errorCode":"CONNECTION_FAILED","errorMessage":"Failed to create Bigtable client for project=","messagePattern":"Failed to create Bigtable client for project=","errorType":"error_code","errorClass":"BigtableConnectorException","httpStatus":null,"severity":"critical","filePath":"seatunnel-connectors-v2/connector-google-bigtable/src/main/java/org/apache/seatunnel/connectors/seatunnel/bigtable/client/BigtableClient.java","lineNumber":83,"sourceCode":"            BigtableDataSettings.Builder settingsBuilder =\n                    BigtableDataSettings.newBuilder()\n                            .setProjectId(parameters.getProjectId())\n                            .setInstanceId(parameters.getInstanceId());\n\n            if (parameters.getCredentialsPath() != null\n                    && !parameters.getCredentialsPath().isEmpty()) {\n                try (FileInputStream credStream =\n                        new FileInputStream(parameters.getCredentialsPath())) {\n                    GoogleCredentials credentials =\n                            ServiceAccountCredentials.fromStream(credStream);\n                    settingsBuilder.stubSettings().setCredentialsProvider(() -> credentials);\n                }\n            }\n\n            BigtableDataClient client = BigtableDataClient.create(settingsBuilder.build());\n            return new BigtableClient(client, parameters);\n        } catch (IOException e) {\n            throw new BigtableConnectorException(\n                    BigtableConnectorErrorCode.CONNECTION_FAILED,\n                    \"Failed to create Bigtable client for project=\"\n                            + parameters.getProjectId()\n                            + \", instance=\"\n                            + parameters.getInstanceId(),\n                    e);\n        }\n    }\n\n    /**\n     * Applies a single row mutation to Bigtable.\n     *\n     * @param rowMutation the row mutation to apply\n     */\n    public void mutateRow(RowMutation rowMutation) {\n        try {\n            dataClient.mutateRow(rowMutation);\n        } catch (Exception e) {","sourceCodeStart":65,"sourceCodeEnd":101,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-connectors-v2/connector-google-bigtable/src/main/java/org/apache/seatunnel/connectors/seatunnel/bigtable/client/BigtableClient.java#L65-L101","documentation":"BigtableClient.createInstance wraps IOException from BigtableDataClient.create(settings) in a BigtableConnectorException with CONNECTION_FAILED. It means the Google Cloud Bigtable data client could not be constructed — usually credential, network, or invalid project/instance settings.","triggerScenarios":"createInstance() calls BigtableDataClient.create(settingsBuilder.build()) which fails with IOException: unreachable endpoint, bad project/instance id, or unresolvable credentials (e.g. GOOGLE_APPLICATION_CREDENTIALS missing/invalid).","commonSituations":"Wrong projectId or instanceId in connector config; no network/firewall access to bigtable.googleapis.com; missing service account key file; running outside GCP without credentials configured.","solutions":["Verify project-id and instance-id values in the connector config match your GCP Bigtable instance","Ensure credentials are available: set GOOGLE_APPLICATION_CREDENTIALS to a valid service-account JSON or run inside GCP with a proper service account","Test network reachability to bigtable.googleapis.com:443 (proxy/firewall rules)","Check the wrapped IOException (getCause) for the precise root cause"],"exampleFix":"// before\nBigtableSink {\n  project-id = \"my-projcet\"\n  instance-id = \"my-inst\"\n}\n// after\nBigtableSink {\n  project-id = \"my-project\"\n  instance-id = \"my-instance\"\n}\nexport GOOGLE_APPLICATION_CREDENTIALS=/path/to/sa.json","handlingStrategy":"try-catch","validationCode":"assert projectId != null && !projectId.isBlank();\nassert instanceId != null && !instanceId.isBlank();\nassert System.getenv(\"GOOGLE_APPLICATION_CREDENTIALS\") != null || isRunningOnGcp();","typeGuard":null,"tryCatchPattern":"try {\n  BigtableClient client = BigtableClient.createInstance(parameters);\n} catch (BigtableConnectorException e) {\n  if (e.getErrorCode() == BigtableConnectorErrorCode.CONNECTION_FAILED) {\n    // check projectId/instanceId, credentials, network; retry with backoff\n  }\n}","preventionTips":["Validate project-id and instance-id against gcloud config before deploying","Ensure GOOGLE_APPLICATION_CREDENTIALS points to a valid service-account JSON","Verify egress to bigtable.googleapis.com:443 from the runtime environment"],"tags":["gcp","bigtable","connection","credentials"],"backgroundTag":"connection-refused","analyzedSha":"cf67b549a7a6c35fa0beb12d83c62892427ea919","analyzedAt":"2026-09-10T21:44:55.265Z","contentChangedAt":"2026-09-10T21:44:55.265Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}