databendlabs/databend · error
importing from V0 is not supported since 2024-03-01, please…
Error message
importing from V0 is not supported since 2024-03-01, please use an older version databend-metactl to import from V0
What it means
Raised in import_lines when validate_version detects a meta-service snapshot exported in the legacy V0 data format. V0 export/import support was dropped after 2024-03-01, so the current databend-metactl refuses the import and tells the operator to use an older metactl release to migrate that snapshot first.
Solutions
- Download a databend-metactl version released before 2024-03-01 to import the V0 dump
- Export the old cluster's data with a compatible tool chain, or migrate via an intermediate metasrv version
- Confirm the dump file's version header; V0 files cannot be imported directly by current metactl
Defensive patterns
Strategy: validation
Validate before calling
let version = reading::read_version(&mut lines.peekable())?;
if matches!(version, DataVersion::V0) {
eprintln!("V0 dump: use pre-2024-03 databend-metactl");
} Try / catch
match import_lines(raft_config, lines).await {
Err(e) if e.to_string().contains("V0 is not supported") => eprintln!("download an older databend-metactl to import this dump"),
other => other,
} Prevention
- Record the dump version when exporting data
- Re-export old clusters with current tooling before retirement
- Keep an archive of older metactl binaries for DR restores
When it happens
Trigger: Running `metactl --import` against a data file whose version header is DataVersion::V0.
Common situations: Restoring a very old backup exported years ago; mixing old export files into a newer cluster migration.
Understand the failure class
Background: UnsupportedOperationException and "is not supported" errors: when a library deliberately refuses a call — this error's family across 30 libraries.
Related errors
- importing from V001 is not supported since 2024-06-12…
- invalid data version
- Invalid version
- unsupported state machine entry at line
AI-assisted analysis of databendlabs/databend@288d84d76e (2026-09-11).
Data as JSON: /api/errors/0ee453fa4738e416.
Report an issue: GitHub.
Appendix: source
Thrown at src/meta/control/src/import.rs:89
return Ok(());
}
init_new_cluster::<SP>(args, nodes, max_log_id).await?;
Ok(())
}
/// Import from lines of exported data and Return the max log id that is found.
async fn import_lines<SP: SpawnApi, B: BufRead + 'static>(
raft_config: RaftConfig,
lines: Lines<B>,
) -> anyhow::Result<Option<LogId>> {
#[allow(clippy::useless_conversion)]
let mut it = lines.into_iter().peekable();
let version = reading::validate_version(&mut it)?;
let max_log_id = match version {
DataVersion::V0 => {
return Err(anyhow::anyhow!(
"importing from V0 is not supported since 2024-03-01,
please use an older version databend-metactl to import from V0"
));
}
DataVersion::V001 => {
return Err(anyhow::anyhow!(
"importing from V001 is not supported since 2024-06-12,
please use an older version databend-metactl to import from V001"
));
}
// v002 v003 v004 share the same exported data format.
DataVersion::V002 => crate::import_v004::import_v004::<SP>(raft_config, it).await?,
DataVersion::V003 => crate::import_v004::import_v004::<SP>(raft_config, it).await?,
DataVersion::V004 => crate::import_v004::import_v004::<SP>(raft_config, it).await?,
};
Ok(max_log_id)
}View on GitHub (pinned to 288d84d76e)