{"record":{"id":"b84b670e0633ba1f","repo":"crowdsecurity/crowdsec","slug":"data-source-s-is-not-built-in-this-version-of-cro","errorCode":null,"errorMessage":"data source %s is not built in this version of crowdsec","messagePattern":"data source (.+?) is not built in this version of crowdsec","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/acquisition/registry/registry.go","lineNumber":83,"sourceCode":"\n\tmu.RLock()\n\tfactory, registered := factoriesByName[module]\n\tmu.RUnlock()\n\n\tif registered {\n\t\treturn factory, nil\n\t}\n\n\tbuilt, known := component.Built[\"datasource_\"+module]\n\tif !known {\n\t\treturn nil, fmt.Errorf(\"unknown data source %s\", module)\n\t}\n\n\tif built {\n\t\tpanic(\"datasource \" + module + \" is built but not registered\")\n\t}\n\n\treturn nil, fmt.Errorf(\"data source %s is not built in this version of crowdsec\", module)\n}\n","sourceCodeStart":65,"sourceCodeEnd":85,"githubUrl":"https://github.com/crowdsecurity/crowdsec/blob/909b5157986a2b2c2163300fdaef5ed01289f7d2/pkg/acquisition/registry/registry.go#L65-L85","documentation":"LookupFactory distinguishes between a datasource that does not exist at all and one that is a recognized crowdsec component which was simply not compiled into this binary (component.Built knows the name, but its build flag is false). In the latter case it throws 'data source %s is not built in this version of crowdsec'. This happens because crowdsec builds datasource modules conditionally with build tags (e.g. docker, k8s-audit may be excluded in some distro packages).","triggerScenarios":"ParseSourceConfig/Validate/LoadAcquisitionFromDSN is asked for a known component (e.g. 'k8s-audit', 'docker', 'cloudwatch') in a binary where the corresponding build tag was off — typical of minimal distro packages, official non-full builds, or self-compiled crowdsec built with 'make build' without all components.","commonSituations":"User installs a slim package or compiles from source with a limited tag set, then reuses an acquis.yaml from a full installation referencing docker or k8s-audit; CI images with reduced binaries; using a DSN like docker:// with a binary where that module is excluded.","solutions":["Rebuild crowdsec from source with the full component set (standard 'make build' includes all datasources) or install the official full package","Replace the acquisition stanza with a datasource that is available in the installed build","Check 'crowdsec --version' / cscli version output: the components list shows which datasources this binary contains","If packaging your own build, enable the relevant build tag for the missing datasource module"],"exampleFix":"// before (slim build, no docker datasource)\nsource: docker\n// after: rebuild full, or use file tail\nsource: file\n  filenames:\n    - /var/log/containers/*.log","handlingStrategy":"validation","validationCode":"out, _ := exec.Command(\"crowdsec\", \"--version\").Output()\nif !strings.Contains(string(out), \"datasource_\"+module) {\n    log.Fatalf(\"datasource %s not in this build\", module)\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Check `cscli version`/`crowdsec --version` component list when moving configs between installs","Build from source with the standard make target that includes all datasources","Use full official packages for machines with heterogeneous acquisition needs","Document required build flags in deployment automation"],"tags":["acquisition","build","datasource"],"backgroundTag":"unsupported-operation","analyzedSha":"909b5157986a2b2c2163300fdaef5ed01289f7d2","analyzedAt":"2026-09-06T12:27:26.012Z","contentChangedAt":"2026-09-06T12:27:26.012Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}