risingwavelabs/risingwave · error · SinkError::Config
`commit_checkpoint_interval` must be greater than 0
Error message
`commit_checkpoint_interval` must be greater than 0
What it means
Validation in LanceDbSink::validate: the common commit_checkpoint_interval must be strictly positive; 0 would mean committing checkpoints every epoch indefinitely and is rejected at sink creation. Fires after the append-only check when building a LanceDB sink.
Source
Thrown at src/connector/src/sink/lancedb.rs:222
}
fn validate_alter_config(config: &BTreeMap<String, String>) -> Result<()> {
LanceDbConfig::from_btreemap(config.clone())?;
Ok(())
}
async fn validate(&self) -> Result<()> {
// Only append-only is supported
if self.config.r#type != SINK_TYPE_APPEND_ONLY
&& self.config.r#type != SINK_USER_FORCE_APPEND_ONLY_OPTION
{
return Err(SinkError::Config(anyhow!(
"only append-only LanceDB sink is supported",
)));
}
if self.config.common.commit_checkpoint_interval == 0 {
return Err(SinkError::Config(anyhow!(
"`commit_checkpoint_interval` must be greater than 0"
)));
}
// Validate connection
let conn = self.config.common.create_connection().await?;
// Validate table exists and schema is compatible
let table = self.config.common.open_table(&conn).await?;
// Get the Lance table schema (Arrow schema)
let lance_schema = table
.schema()
.await
.context("failed to get LanceDB table schema")
.map_err(SinkError::LanceDb)?;
// Convert RW schema to arrow schema and compareView on GitHub (pinned to 6469eb736d)
Solutions
- Remove 'commit_checkpoint_interval' from WITH to use the default
- Set it to a positive integer (seconds/checkpoints > 0)
- Verify no templating/config generation emits 0
Example fix
// before
WITH ('commit_checkpoint_interval' = '0')
// after
WITH ('commit_checkpoint_interval' = '10') Defensive patterns
Strategy: validation
Validate before calling
function checkCommitInterval(v) {
const n = Number(v);
if (v !== undefined && (!Number.isInteger(n) || n <= 0))
throw new Error('commit_checkpoint_interval must be a positive integer');
} Try / catch
catch (SinkError::Config(e)) if e.includes("commit_checkpoint_interval") { remove the option or set a positive value } Prevention
- Omit the option to use defaults instead of setting 0
- Treat 0 as invalid for interval-type options
- Document org-standard sink option templates with valid values
When it happens
Trigger: CREATE SINK ... WITH ('commit_checkpoint_interval' = '0').
Common situations: Users trying to disable periodic commits by setting 0, misunderstanding the option's semantics (0 must be omitted for defaults, not set to 0).
Understand the failure class
Background: "value must be between 0 and 1" / "out of range" / "must not be negative" errors: fixing range-validation failures across open-source libraries — this error's family across 42 libraries.
Related errors
- total_memory_bytes {} is larger than the total memory availa
- parallelism should not be zero
- The total memory size ({}) is too small. It must be at least
- reserved memory ({}) >= total memory ({}).
- Can't find message proto {}
AI-assisted analysis of risingwavelabs/risingwave@6469eb736d (2026-09-11).
Data as JSON: /api/errors/cbf9ff48ec105824.
Report an issue: GitHub.