risingwavelabs/risingwave · error · ErrorCode::ConnectorError
connector error: {0}
Error message
connector error: {0} What it means
`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]`.
Source
Thrown at src/frontend/src/error.rs:52
/// entire RisingWave project.
// TODO(error-handling): this is migrated from the `common` crate, and there could
// be some further refactoring to do:
// - Some variants are never constructed.
// - Some variants store a type-erased `BoxedError` to resolve the reverse dependency.
// It's not necessary anymore as the error type is now defined at the top-level.
#[derive(Error, thiserror_ext::ReportDebug, thiserror_ext::Box, thiserror_ext::Macro)]
#[thiserror_ext(newtype(name = RwError, backtrace), macro(path = "crate::error"))]
pub enum ErrorCode {
#[error("internal error: {0}")]
InternalError(String),
// TODO: unify with the above
#[error(transparent)]
Uncategorized(
#[from]
#[backtrace]
anyhow::Error,
),
#[error("connector error: {0}")]
ConnectorError(
#[source]
#[backtrace]
BoxedError,
),
#[error(transparent)]
NotImplemented(#[from] NotImplemented),
// Tips: Use this only if it's intended to reject the query
#[error("Not supported: {0}\nHINT: {1}")]
NotSupported(String, String),
#[error(transparent)]
NoFunction(#[from] NoFunction),
#[error(transparent)]
IoError(#[from] std::io::Error),
#[error("Storage error: {0}")]
StorageError(
#[backtrace]
#[source]View on GitHub (pinned to 6469eb736d)
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
Example fix
// before CREATE SOURCE s (...) WITH (connector='kafka', properties.bootstrap.server='localhost:9092'); // after (reachable broker + auth) CREATE SOURCE s (...) WITH (connector='kafka', properties.bootstrap.server='broker:9092', properties.sasl.mechanism='SCRAM-SHA-256', properties.security.protocol='SASL_SSL');
Defensive patterns
Strategy: validation
Validate before calling
// pre-check connector reachability before CREATE SOURCE nc -zv broker 9092 # kafka: kcat -b broker:9092 -L
Type guard
fn is_connector_error(e: &RwError) -> bool { matches!(e.get_code(), ErrorCode::ConnectorError(_)) } Try / catch
match err.get_code() { ErrorCode::ConnectorError(inner) => inspect_source_chain(inner), _ => propagate } Prevention
- 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
When it happens
Trigger: 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.
Common situations: Misconfigured Kafka bootstrap servers or SASL credentials, missing IAM permissions for Kinesis/S3, network egress blocked from the RisingWave instance, connector schema/topic mismatch.
Related errors
- Nats connection status is not connected, current status is {
- Sink error: sink_id={1}, error: {0}
- additional column is not supported for connector {}, accepta
- additional column type {} is not supported for connector {},
- unsupported encoding for Upsert
AI-assisted analysis of risingwavelabs/risingwave@6469eb736d (2026-09-11).
Data as JSON: /api/errors/854329da26949653.
Report an issue: GitHub.