{"record":{"id":"204e13ca0fa7c620","repo":"influxdata/influxdb","slug":"gen1-duration-is-not-configured-in-the-catalog","errorCode":null,"errorMessage":"gen1 duration is not configured in the catalog","messagePattern":"gen1 duration is not configured in the catalog","errorType":"validation","errorClass":"EnterpriseCatalogError","httpStatus":null,"severity":"error","filePath":"influxdb3_catalog/src/error/enterprise.rs","lineNumber":39,"sourceCode":"}\n\nimpl std::fmt::Display for NodeMode {\n    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {\n        write!(f, \"{}\", self.as_str())\n    }\n}\n\n#[derive(Debug, thiserror::Error, Clone, Copy)]\npub enum EnterpriseCatalogError {\n    #[error(\"Node doesn't have proper mode, expect {expected}\")]\n    InvalidNodeMode { expected: NodeMode },\n\n    #[error(\n        \"too many compacted generations requested, maximum allowed: 254, requested: {requested}\"\n    )]\n    TooManyCompactedGenerations { requested: usize },\n\n    #[error(\"gen1 duration is not configured in the catalog\")]\n    MissingGen1Duration,\n\n    #[error(\n        \"gen2 duration must be an even multiple of gen1 duration, \\\n        provided gen2 duration: {gen2_duration_secs} seconds, \\\n        existing gen1 duration: {gen1_duration_secs} seconds\"\n    )]\n    InvalidGen2Duration {\n        gen2_duration_secs: u64,\n        gen1_duration_secs: u64,\n    },\n\n    #[error(\"each subsequent generation must be an even multiple of its predecessor\")]\n    MisalignedGenerations,\n}\n","sourceCodeStart":21,"sourceCodeEnd":55,"githubUrl":"https://github.com/influxdata/influxdb/blob/06200ef96ba82c5f6727e5038a83af8e722c6875/influxdb3_catalog/src/error/enterprise.rs#L21-L55","documentation":"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.","triggerScenarios":"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).","commonSituations":"Migrating an OSS catalog to Enterprise and running compaction before setting `--gen1-duration`; fresh clusters where setup skipped the generation-duration configuration step.","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."],"exampleFix":"// before\ninfluxdb3 serve --node-mode compactor  # gen1 duration never configured\n// after\ninfluxdb3 serve --node-mode compactor --gen1-duration 10m","handlingStrategy":"validation","validationCode":"// before compactor ops, confirm gen1 duration is configured\n// e.g. via catalog inspection or by always starting with --gen1-duration","typeGuard":null,"tryCatchPattern":"match result {\n    Err(EnterpriseCatalogError::MissingGen1Duration) =>\n        eprintln!(\"set --gen1-duration (or catalog config) before running compaction\"),\n    other => other?,\n}","preventionTips":["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"],"tags":["enterprise","generations","missing-config","compaction"],"backgroundTag":"missing-config-value","analyzedSha":"06200ef96ba82c5f6727e5038a83af8e722c6875","analyzedAt":"2026-09-19T12:55:30.003Z","contentChangedAt":"2026-09-19T12:55:30.003Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}