{"record":{"id":"57f71ce4d95a74fb","repo":"risingwavelabs/risingwave","slug":"unknown-source-connector-connector-name-57f71c","errorCode":null,"errorMessage":"Unknown source connector: {connector_name}","messagePattern":"Unknown source connector: (.+?)","errorType":"validation","errorClass":"ConnectorError","httpStatus":null,"severity":"error","filePath":"src/connector/src/with_options_test.rs","lineNumber":796,"sourceCode":"/// Get all sink connector names that have `allow_alter_on_fly` fields\npub fn get_sink_connectors_with_allow_alter_on_fly_fields() -> Vec<&'static str> {{\n    SINK_ALLOW_ALTER_ON_FLY_FIELDS.keys().map(|s| s.as_str()).collect()\n}}\n\n/// Get all connection names that have `allow_alter_on_fly` fields\npub fn get_connection_names_with_allow_alter_on_fly_fields() -> Vec<&'static str> {{\n    CONNECTION_ALLOW_ALTER_ON_FLY_FIELDS.keys().map(|s| s.as_str()).collect()\n}}\n\n/// Checks if all given fields are allowed to be altered on the fly for the specified source connector.\n/// Returns Ok(()) if all fields are allowed, otherwise returns a `ConnectorError`.\npub fn check_source_allow_alter_on_fly_fields(\n    connector_name: &str,\n    fields: &[String],\n) -> crate::error::ConnectorResult<()> {{\n    // Convert connector name to the type name key\n    let Some(type_name) = source_properties::source_name_to_prop_type_name(connector_name) else {{\n        return Err(ConnectorError::from(anyhow::anyhow!(\n            \"Unknown source connector: {{connector_name}}\"\n        )));\n    }};\n    let Some(allowed_fields) = SOURCE_ALLOW_ALTER_ON_FLY_FIELDS.get(type_name) else {{\n    return Err(ConnectorError::from(anyhow::anyhow!(\n        \"No allow_alter_on_fly fields registered for connector: {{connector_name}}\"\n    )));\n    }};\n    for field in fields {{\n        if !allowed_fields.contains(field) {{\n            return Err(ConnectorError::from(anyhow::anyhow!(\n                \"Field '{{field}}' is not allowed to be altered on the fly for connector: {{connector_name}}\"\n            )));\n        }}\n    }}\n    Ok(())\n}}\n","sourceCodeStart":778,"sourceCodeEnd":814,"githubUrl":"https://github.com/risingwavelabs/risingwave/blob/6469eb736d691e8e9b8a419a57edd6429ca77417/src/connector/src/with_options_test.rs#L778-L814","documentation":"This error is raised by check_source_allow_alter_on_fly_fields when the given connector name cannot be mapped to a known source property type name via source_properties::source_name_to_prop_type_name. It means RisingWave has no registered schema entry for the requested source connector, so it cannot validate which fields may be altered on the fly.","triggerScenarios":"Calling check_source_allow_alter_on_fly_fields (or the generated code path via generate_allow_alter_on_fly_fields_combined) with a connector_name string that is not a registered source connector name (typo, wrong case, or a connector only existing in a newer/older version).","commonSituations":"Typo in CREATE SOURCE `connector`/`with` connector name (e.g. 'kafk' instead of 'kafka'); custom/internal connector names not registered in the property registry; version mismatch where the connector was renamed or removed.","solutions":["Check the connector name spelling against the registered source names (see source_properties and the WITH options documentation).","Use a supported connector name exactly as listed (e.g. 'kafka', 'kinesis', 'nats', 'pulsar', 'datagen').","If adding a new connector, register its properties and allow_alter_on_fly fields so source_name_to_prop_type_name resolves it.","Verify both frontend and connector crates are built from the same version to avoid registry drift."],"exampleFix":"// before\ncheck_source_allow_alter_on_fly_fields(\"kafk\", &fields)?;\n// after\ncheck_source_allow_alter_on_fly_fields(\"kafka\", &fields)?;","handlingStrategy":"validation","validationCode":"fn is_known_source_connector(name: &str) -> bool {\n    risingwave_connector::source::source_properties::source_name_to_prop_type_name(name).is_some()\n}","typeGuard":null,"tryCatchPattern":"match check_source_allow_alter_on_fly_fields(connector, &fields) {\n    Ok(()) => {},\n    Err(e) => eprintln!(\"connector '{}' not supported for on-the-fly alteration: {}\", connector, e),\n}","preventionTips":["Copy connector names from the official WITH options documentation rather than by memory","Keep frontend and connector crates on the same commit/version","Validate connector names early (at SQL parse/planning time) with a registry lookup"],"tags":["connector","source","config-validation"],"backgroundTag":"invalid-config-value","analyzedSha":"6469eb736d691e8e9b8a419a57edd6429ca77417","analyzedAt":"2026-09-11T21:06:21.487Z","contentChangedAt":"2026-09-11T21:06:21.487Z","schemaVersion":2},"datasetVersion":"2026-09-14T16:17:12.679Z"}