{"record":{"id":"87ee133675c7b6d5","repo":"risingwavelabs/risingwave","slug":"unsupported-cdc-connector-type","errorCode":null,"errorMessage":"Unsupported cdc connector type: {}","messagePattern":"Unsupported cdc connector type: (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/connector/src/source/cdc/external/mod.rs","lineNumber":528,"sourceCode":"                MySqlExternalTable::connect(config).await?,\n            )),\n            CdcSourceType::Postgres => {\n                let pg_conn = config.pg_connection_config()?;\n                Ok(ExternalTableImpl::Postgres(\n                    PostgresExternalTable::connect(\n                        &pg_conn,\n                        &config.schema,\n                        &config.table,\n                        false,\n                        Some(\"SELECT\"),\n                    )\n                    .await?,\n                ))\n            }\n            CdcSourceType::SqlServer => Ok(ExternalTableImpl::SqlServer(\n                SqlServerExternalTable::connect(config).await?,\n            )),\n            _ => Err(anyhow!(\"Unsupported cdc connector type: {}\", config.connector).into()),\n        }\n    }\n\n    pub fn column_descs(&self) -> &Vec<ColumnDesc> {\n        match self {\n            ExternalTableImpl::MySql(mysql) => mysql.column_descs(),\n            ExternalTableImpl::Postgres(postgres) => postgres.column_descs(),\n            ExternalTableImpl::SqlServer(sql_server) => sql_server.column_descs(),\n        }\n    }\n\n    pub fn pk_names(&self) -> &Vec<String> {\n        match self {\n            ExternalTableImpl::MySql(mysql) => mysql.pk_names(),\n            ExternalTableImpl::Postgres(postgres) => postgres.pk_names(),\n            ExternalTableImpl::SqlServer(sql_server) => sql_server.pk_names(),\n        }\n    }","sourceCodeStart":510,"sourceCodeEnd":546,"githubUrl":"https://github.com/risingwavelabs/risingwave/blob/6469eb736d691e8e9b8a419a57edd6429ca77417/src/connector/src/source/cdc/external/mod.rs#L510-L546","documentation":"`ExternalTableImpl::connect` dispatches on the config's connector type and only implements external tables for MySQL and SQL Server CDC. The catch-all arm converts any other CdcSourceType into this anyhow error, so requesting an external table for an unimplemented connector fails at connect time.","triggerScenarios":"connect(config) is called with config.connector set to a CdcSourceType other than MySql or SqlServer (e.g. Postgres/Citus CDC) when building an ExternalTableImpl.","commonSituations":"Creating a CDC external table with a connector variant that RisingWave has not implemented external-table support for, or a new CdcSourceType added upstream without a matching connect arm.","solutions":["Use connector='mysql-cdc' or 'sqlserver-cdc' for external CDC tables.","For other databases, create a regular CDC source/table instead of an external table.","For developers: implement the missing match arm (e.g. Postgres) in ExternalTableImpl::connect."],"exampleFix":"// before\nconnector = 'citus-cdc'  // Err: Unsupported cdc connector type: Citus\n// after\nconnector = 'sqlserver-cdc', hostname = '...', port = '1433', ...","handlingStrategy":"validation","validationCode":"match config.connector.as_str() {\n    \"mysql-cdc\" | \"sqlserver-cdc\" => Ok(()),\n    other => Err(anyhow!(\"external CDC tables unsupported for connector {}\", other)),\n}?","typeGuard":null,"tryCatchPattern":"match ExternalTableImpl::connect(config).await {\n    Err(e) if e.to_string().starts_with(\"Unsupported cdc connector type\") => {\n        bail!(\"use mysql-cdc or sqlserver-cdc for external tables: {e}\");\n    }\n    other => other,\n}","preventionTips":["Check the supported connector matrix before choosing an external-table connector.","For unsupported databases, fall back to a regular CDC source rather than an external table.","Keep ExternalTableImpl::connect match arms in sync with new CdcSourceType variants."],"tags":["cdc","external-table","unsupported-connector"],"backgroundTag":"unsupported-enum-value","analyzedSha":"6469eb736d691e8e9b8a419a57edd6429ca77417","analyzedAt":"2026-09-11T21:06:21.487Z","contentChangedAt":"2026-09-11T21:06:21.487Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}