{"record":{"id":"ad49e5fe7e53be35","repo":"crowdsecurity/crowdsec","slug":"glob-failure-w","errorCode":null,"errorMessage":"glob failure: %w","messagePattern":"glob failure: %w","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/acquisition/modules/file/config.go","lineNumber":113,"sourceCode":"\tfor _, pattern := range s.config.Filenames {\n\t\tif s.config.ForceInotify {\n\t\t\tdirectory := filepath.Dir(pattern)\n\t\t\ts.logger.Infof(\"Force add watch on %s\", directory)\n\n\t\t\tif !s.watchedDirectories[directory] {\n\t\t\t\terr = s.watcher.Add(directory)\n\t\t\t\tif err != nil {\n\t\t\t\t\ts.logger.Errorf(\"Could not create watch on directory %s : %s\", directory, err)\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\ts.watchedDirectories[directory] = true\n\t\t\t}\n\t\t}\n\n\t\tfiles, err := filepath.Glob(pattern)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"glob failure: %w\", err)\n\t\t}\n\n\t\tif len(files) == 0 {\n\t\t\ts.logger.Warnf(\"No matching files for pattern %s\", pattern)\n\t\t\tcontinue\n\t\t}\n\n\t\tfor _, file := range files {\n\t\t\tif s.isExcluded(file) {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tif files[0] != pattern && s.config.Mode == configuration.TAIL_MODE { // we have a glob pattern\n\t\t\t\tdirectory := filepath.Dir(file)\n\t\t\t\ts.logger.Debugf(\"Will add watch to directory: %s\", directory)\n\n\t\t\t\tif !s.watchedDirectories[directory] {\n\t\t\t\t\terr = s.watcher.Add(directory)","sourceCodeStart":95,"sourceCodeEnd":131,"githubUrl":"https://github.com/crowdsecurity/crowdsec/blob/909b5157986a2b2c2163300fdaef5ed01289f7d2/pkg/acquisition/modules/file/config.go#L95-L131","documentation":"In the file source's Configure, filepath.Glob failed on one of the configured 'filenames' patterns; this means the pattern itself is malformed (e.g. unclosed '[' or bad syntax), not that no files matched, so startup aborts.","triggerScenarios":"Thrown at pkg/acquisition/modules/file/config.go:113 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Fix the glob pattern in the acquisition filenames config (escape literal '[' as '[[]')","Simplify the pattern or use a literal path if no globbing is needed"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"909b5157986a2b2c2163300fdaef5ed01289f7d2","analyzedAt":"2026-09-06T12:27:26.012Z","contentChangedAt":"2026-09-06T12:27:26.012Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}