{"record":{"id":"95f6556c6884d2b5","repo":"windmill-labs/windmill","slug":"license-can-t-be-validated-in-windmill-ce","errorCode":null,"errorMessage":"License can't be validated in Windmill CE","messagePattern":"License can't be validated in Windmill CE","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"backend/windmill-api-settings/src/ee_oss.rs","lineNumber":17,"sourceCode":"#[cfg(feature = \"private\")]\n#[allow(unused)]\npub use crate::ee::*;\n\n#[cfg(not(feature = \"private\"))]\nuse anyhow::anyhow;\n#[cfg(not(feature = \"private\"))]\npub async fn validate_license_key(\n    _license_key: String,\n    _db: Option<&windmill_common::DB>,\n) -> anyhow::Result<(\n    String,\n    bool,\n    Option<windmill_common::ee_oss::OfflineMetadata>,\n)> {\n    // Implementation is not open source\n    Err(anyhow!(\"License can't be validated in Windmill CE\"))\n}\n","sourceCodeStart":1,"sourceCodeEnd":19,"githubUrl":"https://github.com/windmill-labs/windmill/blob/e474e8803ce2ff5c2df09a58dab51d45f5c922ca/backend/windmill-api-settings/src/ee_oss.rs#L1-L19","documentation":"validate_license_key in windmill-api-settings is the CE stub for license key validation; the real implementation is enterprise-only. In an open-source build it always fails with 'License can't be validated in Windmill CE', returning no key info, no real quotas, and no offline metadata.","triggerScenarios":"Calling test_license_key (settings API or superadmin UI 'test license' action) on a community-edition Windmill instance with any license key string.","commonSituations":"Self-hosted CE user pastes a license key into instance settings expecting activation; CI test invoking the license endpoint on a CE build; migrating config from EE to CE.","solutions":["Use Windmill Enterprise Edition and a valid license key issued by Windmill to validate licenses","On CE, remove the license key from instance settings and run without EE features","Contact Windmill sales to obtain an EE license if EE features are needed"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"// on CE builds, skip license calls entirely\nlet is_ee = instance_settings.license_key.is_some() && windmill_common::build_info().ee;\nif !is_ee { return Ok(None); }","typeGuard":null,"tryCatchPattern":"match validate_license_key(&db, &key).await {\n    Ok(info) => info,\n    Err(e) if e.to_string().contains(\"can't be validated in Windmill CE\") => {\n        tracing::info!(\"no license validation in CE build\");\n        Default::default()\n    }\n    Err(e) => return Err(e),\n}","preventionTips":["Gate license-management UI behind an EE capability check","Don't persist license keys on CE deployments","Document CE/EE feature boundaries for operators"],"tags":["licensing","enterprise","settings"],"backgroundTag":"feature-requires-enterprise","analyzedSha":"e474e8803ce2ff5c2df09a58dab51d45f5c922ca","analyzedAt":"2026-09-03T12:38:19.024Z","contentChangedAt":"2026-09-03T12:38:19.024Z","schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}