influxdata/influxdb · error · EnterpriseCatalogError
gen1 duration is not configured in the catalog
Error message
gen1 duration is not configured in the catalog
What it means
EnterpriseCatalogError::MissingGen1Duration. Raised when an operation needs the catalog-configured gen1 duration (the smallest generation window used for compaction planning) but it was never set in the catalog. Without gen1 duration, generation alignment checks cannot proceed.
Solutions
- Set the gen1 duration in the catalog, e.g. start with `--gen1-duration <value>` or update it via the catalog config API.
- Verify the configured durations via the catalog before running compaction ops.
- If migrating from OSS, complete the Enterprise duration configuration as part of migration.
- Add a startup check that gen1 duration is present before enabling the compactor role.
Example fix
// before influxdb3 serve --node-mode compactor # gen1 duration never configured // after influxdb3 serve --node-mode compactor --gen1-duration 10m
Defensive patterns
Strategy: validation
Validate before calling
// before compactor ops, confirm gen1 duration is configured // e.g. via catalog inspection or by always starting with --gen1-duration
Try / catch
match result {
Err(EnterpriseCatalogError::MissingGen1Duration) =>
eprintln!("set --gen1-duration (or catalog config) before running compaction"),
other => other?,
} Prevention
- Always pass --gen1-duration when configuring Enterprise nodes
- Complete duration configuration when migrating OSS catalogs to Enterprise
- Add a startup assertion that gen1 duration exists before enabling the compactor
- Document required duration settings in deployment runbooks
When it happens
Trigger: Invoking generation/compactor operations on a catalog that was created without a gen1 duration configured (e.g. an OSS-created catalog or one set up before the duration options existed).
Common situations: Migrating an OSS catalog to Enterprise and running compaction before setting `--gen1-duration`; fresh clusters where setup skipped the generation-duration configuration step.
Understand the failure class
Background: "missing required config value" errors: why libraries refuse to start when a configuration key is empty, unset, or blank — this error's family across 48 libraries.
Related errors
- too many compacted generations requested, maximum allowed…
- each subsequent generation must be an even multiple of its…
- gen2 duration must be an even multiple of gen1 duration…
- Error converting compaction level
- Node doesn't have proper mode, expect
AI-assisted analysis of influxdata/influxdb@06200ef96b (2026-09-19).
Data as JSON: /api/errors/204e13ca0fa7c620.
Report an issue: GitHub.
Appendix: source
Thrown at influxdb3_catalog/src/error/enterprise.rs:39
}
impl std::fmt::Display for NodeMode {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "{}", self.as_str())
}
}
#[derive(Debug, thiserror::Error, Clone, Copy)]
pub enum EnterpriseCatalogError {
#[error("Node doesn't have proper mode, expect {expected}")]
InvalidNodeMode { expected: NodeMode },
#[error(
"too many compacted generations requested, maximum allowed: 254, requested: {requested}"
)]
TooManyCompactedGenerations { requested: usize },
#[error("gen1 duration is not configured in the catalog")]
MissingGen1Duration,
#[error(
"gen2 duration must be an even multiple of gen1 duration, \
provided gen2 duration: {gen2_duration_secs} seconds, \
existing gen1 duration: {gen1_duration_secs} seconds"
)]
InvalidGen2Duration {
gen2_duration_secs: u64,
gen1_duration_secs: u64,
},
#[error("each subsequent generation must be an even multiple of its predecessor")]
MisalignedGenerations,
}
View on GitHub (pinned to 06200ef96b)