{"record":{"id":"854329da26949653","repo":"risingwavelabs/risingwave","slug":"connector-error-0-854329","errorCode":null,"errorMessage":"connector error: {0}","messagePattern":"connector error: (.+?)","errorType":"error_code","errorClass":"ErrorCode::ConnectorError","httpStatus":null,"severity":"error","filePath":"src/frontend/src/error.rs","lineNumber":52,"sourceCode":"/// entire RisingWave project.\n// TODO(error-handling): this is migrated from the `common` crate, and there could\n// be some further refactoring to do:\n// - Some variants are never constructed.\n// - Some variants store a type-erased `BoxedError` to resolve the reverse dependency.\n//   It's not necessary anymore as the error type is now defined at the top-level.\n#[derive(Error, thiserror_ext::ReportDebug, thiserror_ext::Box, thiserror_ext::Macro)]\n#[thiserror_ext(newtype(name = RwError, backtrace), macro(path = \"crate::error\"))]\npub enum ErrorCode {\n    #[error(\"internal error: {0}\")]\n    InternalError(String),\n    // TODO: unify with the above\n    #[error(transparent)]\n    Uncategorized(\n        #[from]\n        #[backtrace]\n        anyhow::Error,\n    ),\n    #[error(\"connector error: {0}\")]\n    ConnectorError(\n        #[source]\n        #[backtrace]\n        BoxedError,\n    ),\n    #[error(transparent)]\n    NotImplemented(#[from] NotImplemented),\n    // Tips: Use this only if it's intended to reject the query\n    #[error(\"Not supported: {0}\\nHINT: {1}\")]\n    NotSupported(String, String),\n    #[error(transparent)]\n    NoFunction(#[from] NoFunction),\n    #[error(transparent)]\n    IoError(#[from] std::io::Error),\n    #[error(\"Storage error: {0}\")]\n    StorageError(\n        #[backtrace]\n        #[source]","sourceCodeStart":34,"sourceCodeEnd":70,"githubUrl":"https://github.com/risingwavelabs/risingwave/blob/6469eb736d691e8e9b8a419a57edd6429ca77417/src/frontend/src/error.rs#L34-L70","documentation":"`ErrorCode::ConnectorError` wraps a type-erased `BoxedError` originating from a source connector (Kafka, Kinesis, Pulsar, S3, etc.). RisingWave surfaces connector-internal failures under this uniform prefix while preserving the underlying error as `#[source]`.","triggerScenarios":"Creating or running a `CREATE SOURCE`/`CREATE TABLE ... WITH (connector = ...)` or a sink: connector initialization failures (bad broker address, auth failure), or runtime read/write failures inside the source executor.","commonSituations":"Misconfigured Kafka bootstrap servers or SASL credentials, missing IAM permissions for Kinesis/S3, network egress blocked from the RisingWave instance, connector schema/topic mismatch.","solutions":["Inspect the chained `#[source]` error for the connector-specific cause","Verify connector options in the WITH clause (hosts, ports, credentials, topic/region)","Test connectivity from the RisingWave host to the external service (kafka CLI, aws cli)","Check authentication credentials and IAM policies","Retry creation after fixing; for runtime failures check the connector's own dashboard/logs"],"exampleFix":"// before\nCREATE SOURCE s (...) WITH (connector='kafka', properties.bootstrap.server='localhost:9092');\n// after (reachable broker + auth)\nCREATE SOURCE s (...) WITH (connector='kafka', properties.bootstrap.server='broker:9092', properties.sasl.mechanism='SCRAM-SHA-256', properties.security.protocol='SASL_SSL');","handlingStrategy":"validation","validationCode":"// pre-check connector reachability before CREATE SOURCE\nnc -zv broker 9092\n# kafka: kcat -b broker:9092 -L","typeGuard":"fn is_connector_error(e: &RwError) -> bool { matches!(e.get_code(), ErrorCode::ConnectorError(_)) }","tryCatchPattern":"match err.get_code() { ErrorCode::ConnectorError(inner) => inspect_source_chain(inner), _ => propagate }","preventionTips":["Validate broker/region/credentials in the WITH clause before creating sources","Test connectivity from the RisingWave network to the external system","Use least-privilege but verified IAM credentials","Keep connector option keys current with your RisingWave version"],"tags":["connector","kafka","source","network"],"backgroundTag":"upstream-api-error","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"}