{"record":{"id":"b200440873ee7c6b","repo":"apache/beam","slug":"unsupported-connector-supported-connectors-are","errorCode":null,"errorMessage":"Unsupported connector ''. Supported connectors are: ","messagePattern":"Unsupported connector ''\\. Supported connectors are: ","errorType":"validation","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"sdks/java/io/debezium/src/main/java/org/apache/beam/io/debezium/DebeziumReadSchemaTransformProvider.java","lineNumber":81,"sourceCode":"  private final Long testLimitMilliseconds;\n\n  public DebeziumReadSchemaTransformProvider() {\n    this(false, -1, Long.MAX_VALUE);\n  }\n\n  @VisibleForTesting\n  protected DebeziumReadSchemaTransformProvider(\n      Boolean isTest, Integer recordLimit, Long timeLimitMs) {\n    this.isTest = isTest;\n    this.testLimitRecords = recordLimit;\n    this.testLimitMilliseconds = timeLimitMs;\n  }\n\n  private static Connectors parseConnector(String value) {\n    try {\n      return Connectors.valueOf(value);\n    } catch (IllegalArgumentException e) {\n      throw new IllegalArgumentException(\n          \"Unsupported connector '\"\n              + value\n              + \"'. Supported connectors are: \"\n              + Arrays.toString(Connectors.values()),\n          e);\n    }\n  }\n\n  @Override\n  protected @NonNull @Initialized Class<DebeziumReadSchemaTransformConfiguration>\n      configurationClass() {\n    return DebeziumReadSchemaTransformConfiguration.class;\n  }\n\n  @Override\n  protected @NonNull @Initialized SchemaTransform from(\n      DebeziumReadSchemaTransformConfiguration configuration) {\n","sourceCodeStart":63,"sourceCodeEnd":99,"githubUrl":"https://github.com/apache/beam/blob/12126d8942aaf848030c478b4c6a28c6af861c66/sdks/java/io/debezium/src/main/java/org/apache/beam/io/debezium/DebeziumReadSchemaTransformProvider.java#L63-L99","documentation":"DebeziumReadSchemaTransformProvider.parseConnector validates the 'connector' option by delegating to Connectors.valueOf; an unrecognized value throws IllegalArgumentException listing all supported connectors. This runs when the SchemaTransform is constructed.","triggerScenarios":"Setting the connector option of the Debezium read SchemaTransform (SQL/transform configuration) to a string that is not a Connectors enum constant, e.g. \"sqlserver\" when unsupported.","commonSituations":"Copy-pasting a connector name from Debezium docs rather than from the Beam enum, wrong casing, or whitespace around the value.","solutions":["Set connector to one of the values listed in the exception message (exact enum constant names).","Trim and match case precisely; enum names are typically uppercase engine names.","Consult DebeziumReadSchemaTransformProvider docs for the accepted connector option values.","If your engine is missing, use the lower-level DebeziumIO with a full Debezium configuration instead."],"exampleFix":"// before\nDebeziumRead.getConnector(\"postgres-db\") // unsupported\n// after\nDebeziumRead.getConnector(\"POSTGRES\") // supported enum constant","handlingStrategy":"validation","validationCode":"try { Connectors.valueOf(value.trim()); } catch (IllegalArgumentException e) {\n  throw new IllegalArgumentException(\"connector must be one of \" + Arrays.toString(Connectors.values()));\n}","typeGuard":"static boolean supportedConnector(String v) {\n  for (Connectors c : Connectors.values()) if (c.name().equals(v)) return true;\n  return false;\n}","tryCatchPattern":null,"preventionTips":["Use values from the exception's 'Supported connectors are:' list verbatim.","Trim whitespace from config values before passing them.","Validate the whole Debezium transform spec with a dry-run before submitting the job."],"tags":["java","apache-beam","debezium","config","enum"],"backgroundTag":"unsupported-enum-value","analyzedSha":"12126d8942aaf848030c478b4c6a28c6af861c66","analyzedAt":"2026-09-13T01:50:10.254Z","contentChangedAt":"2026-09-13T01:50:10.254Z","schemaVersion":2},"datasetVersion":"2026-09-14T16:17:12.679Z"}