risingwavelabs/risingwave · error · SinkError
Doris/Starrocks connect error: {0}
Error message
Doris/Starrocks connect error: {0} What it means
This is a variant of the SinkError enum (src/connector/src/sink/mod.rs:1089) used by RisingWave's sink connectors. It wraps an anyhow::Error produced when establishing a connection to a Doris or Starrocks external database fails during sink initialization or data loading. It reports the underlying connect failure message verbatim ({0}).
Source
Thrown at src/connector/src/sink/mod.rs:1154
#[error("Mqtt error: {0}")]
Mqtt(
#[source]
#[backtrace]
anyhow::Error,
),
#[error("Nats error: {0}")]
Nats(
#[source]
#[backtrace]
anyhow::Error,
),
#[error("Google Pub/Sub error: {0}")]
GooglePubSub(
#[source]
#[backtrace]
anyhow::Error,
),
#[error("Doris/Starrocks connect error: {0}")]
DorisStarrocksConnect(
#[source]
#[backtrace]
anyhow::Error,
),
#[error("Doris error: {0}")]
Doris(String),
#[error("DeltaLake error: {0}")]
DeltaLake(
#[source]
#[backtrace]
anyhow::Error,
),
#[error("LanceDB error: {0}")]
LanceDb(
#[source]
#[backtrace]
anyhow::Error,View on GitHub (pinned to 6469eb736d)
Solutions
- Verify the Doris/Starrocks FE host and http_port/query_port in the sink WITH options are reachable from RisingWave (curl the FE endpoint).
- Check username/password options and that the user has LOAD privileges on the target table.
- Confirm the Doris/Starrocks cluster is up and the database/table exist.
- Check network/firewall/DNS between RisingWave nodes and the FE nodes, then retry.
Example fix
// before CREATE SINK s FROM mv WITH ( connector = 'doris', url = 'http://fe-wrong-host:8030', table = 't' ); // after CREATE SINK s FROM mv WITH ( connector = 'doris', url = 'http://fe-host:8030', user = 'admin', password = '***', database = 'db', table = 't' );
Defensive patterns
Strategy: validation
Validate before calling
curl -u user:pass http://fe-host:8030/api/show_proc?path=/ --max-time 5 # verify FE reachability before creating the sink
Try / catch
match err { SinkError::DorisStarrocksConnect(e) => { log::error!("doris connect: {e:#}"); /* alert/retry with backoff */ } _ => return Err(err) } Prevention
- Pre-test FE connectivity and credentials with curl before CREATE SINK
- Keep FE/BE ports open in firewalls/security groups
- Store credentials via secret management, not inline SQL
When it happens
Trigger: Creating or starting a Doris/Starrocks sink when the FE (Frontend) HTTP/RPC endpoint is unreachable, credentials are wrong, or the stream-load endpoint cannot be reached during sink commit.
Common situations: Wrong FE host/port in WITH options, DNS or network/firewall blocking the FE, Doris/Starrocks cluster down or restarting, wrong username/password, TLS misconfiguration.
Understand the failure class
Background: ECONNREFUSED and "connection refused" / "could not connect to server" errors: what they mean and how to fix them — this error's family across 44 libraries.
Related errors
- sending stream load request failed
- failed to parse response body
- Failed connection {:?},{:?}
- channel closed
- redirection occur more than twice when sending stream load r
AI-assisted analysis of risingwavelabs/risingwave@6469eb736d (2026-09-11).
Data as JSON: /api/errors/e9bab2695aff28b9.
Report an issue: GitHub.