{"record":{"id":"f9430ddd3e7c3c86","repo":"influxdata/influxdb","slug":"you-ve-incorrectly-specified-a-cluster-id-for-infl","errorCode":null,"errorMessage":"You've incorrectly specified a cluster-id for InfluxDB 3 Core OSS.\n\nCluster-id is an InfluxDB 3 Enterprise parameter. \nDid you install Core in an upgrade or run Core by mistake?\n\nRemove --cluster-id to run InfluxDB 3 Core OSS.","messagePattern":"You've incorrectly specified a cluster-id for InfluxDB 3 Core OSS\\.\n\nCluster-id is an InfluxDB 3 Enterprise parameter\\. \nDid you install Core in an upgrade or run Core by mistake\\?\n\nRemove --cluster-id to run InfluxDB 3 Core OSS\\.","errorType":"validation","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"influxdb3/src/commands/serve.rs","lineNumber":694,"sourceCode":"    /// the catalog.\n    #[clap(\n        long = \"delete-grace-period\",\n        env = \"INFLUXDB3_DELETE_GRACE_PERIOD\",\n        default_value = \"24h\",\n        action\n    )]\n    pub delete_grace_period: humantime::Duration,\n\n    /// The cluster-id is an enterprise config option to identify nodes belonging to the same cluster.\n    /// Core OSS is single node only. We've seen folks install Core OSS thinking they installed Enterprise.\n    /// They use --cluster-id and get the error `unexpected argument` which is confusing. So we generate\n    /// a custom error message if they use this arg.\n    #[clap(long = \"cluster-id\", value_parser=fail_cluster_id)]\n    pub cluster_id: Option<String>,\n}\n\npub fn fail_cluster_id(_: &str) -> Result<String, anyhow::Error> {\n    Err(anyhow::anyhow!(\n        \"You've incorrectly specified a cluster-id for InfluxDB 3 Core OSS.\\n\\nCluster-id is an InfluxDB 3 Enterprise parameter. \\\n    \\nDid you install Core in an upgrade or run Core by mistake?\\n\\nRemove --cluster-id to run InfluxDB 3 Core OSS.\"\n    ))\n}\n\n#[derive(Clone, Debug, clap::Args)]\n#[group(required = true)]\npub struct NodeId {\n    /// The node identifier used as a prefix in all object store file paths. This should be unique\n    /// for any InfluxDB 3 Core servers that share the same object store configuration, i.e., the\n    /// same bucket.\n    #[clap(\n        long = \"node-id\",\n        // TODO: deprecate this alias in future version\n        alias = \"host-id\",\n        env = \"INFLUXDB3_NODE_ID\",\n        group = \"node_id\",\n        action","sourceCodeStart":676,"sourceCodeEnd":712,"githubUrl":"https://github.com/influxdata/influxdb/blob/d28e26e048401c53cbb98cf2d6ab0cf1e98048ca/influxdb3/src/commands/serve.rs#L676-L712","documentation":"In InfluxDB 3 Core OSS, the --cluster-id CLI argument is wired to a clap value_parser (fail_cluster_id) that always returns Err. cluster-id is an Enterprise-only option; historically users who installed Core while thinking they had Enterprise passed --cluster-id and got clap's confusing 'unexpected argument' error, so Core ships this custom, self-explanatory message instead. The error is emitted at argument parsing time, before the server starts.","triggerScenarios":"Running `influxdb3 serve --cluster-id <value> ...` on a Core OSS binary. Any presence of the flag triggers the failure regardless of the value passed, because the parser function ignores its input and always errors.","commonSituations":"Followed Enterprise documentation against a Core binary; downgraded from Enterprise to Core but reused old systemd/Kubernetes manifests or scripts; CI pipelines written for Enterprise pointed at a Core image.","solutions":["Remove --cluster-id from the command line / service definition and restart — Core OSS is single-node","Verify which edition you run: `influxdb3 --version`","If you actually need clustering, install InfluxDB 3 Enterprise instead of Core OSS","Audit systemd units, Helm values, and wrapper scripts for leftover Enterprise-only flags"],"exampleFix":"# before\ninfluxdb3 serve --node-id n1 --cluster-id my-cluster --object-store file:///data\n# -> You've incorrectly specified a cluster-id for InfluxDB 3 Core OSS.\n\n# after\ninfluxdb3 serve --node-id n1 --object-store file:///data","handlingStrategy":"validation","validationCode":"# strip Enterprise-only flags before invoking a Core OSS binary\ncase \"$(influxdb3 --version)\" in\n  *Enterprise*) ARGS+=(\"--cluster-id\" \"$CLUSTER_ID\") ;;\n  *) echo \"Core OSS: dropping --cluster-id\" ;;\nesac\ninfluxdb3 serve \"${ARGS[@]}\"","typeGuard":null,"tryCatchPattern":"influxdb3 serve \"$@\" || { echo \"serve failed — check for edition-specific flags like --cluster-id\" >&2; exit 1; }","preventionTips":["Pin deploy scripts to the edition actually installed (Core vs Enterprise)","When downgrading from Enterprise, sweep units/manifests for Enterprise-only flags","Smoke-test the serve command after any binary swap"],"tags":["influxdb","cli","core-oss","enterprise","clap","configuration"],"backgroundTag":"enterprise-feature-unavailable","analyzedSha":"d28e26e048401c53cbb98cf2d6ab0cf1e98048ca","analyzedAt":"2026-08-16T19:53:34.623Z","schemaVersion":2},"datasetVersion":"2026-08-16T23:17:17.608Z"}