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

  1. Set the gen1 duration in the catalog, e.g. start with `--gen1-duration <value>` or update it via the catalog config API.
  2. Verify the configured durations via the catalog before running compaction ops.
  3. If migrating from OSS, complete the Enterprise duration configuration as part of migration.
  4. 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

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


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)