crowdsecurity/crowdsec · error
while loading %s: %w
Error message
while loading %s: %w
What it means
LoadAllTests walks the hub test folder and, for each subdirectory, calls LoadTestItem. Any failure from loading a single test item is wrapped as 'while loading <name>: %w' so the report identifies which test directory failed to load. LoadAllTests aborts on the first failing item rather than continuing with the rest.
Source
Thrown at pkg/hubtest/hubtest.go:222
if err != nil {
return HubTestItem, err
}
h.Tests = append(h.Tests, testItem)
return testItem, nil
}
func (h *HubTest) LoadAllTests() error {
testsFolder, err := os.ReadDir(h.HubTestPath)
if err != nil {
return err
}
for _, f := range testsFolder {
if f.IsDir() {
if _, err := h.LoadTestItem(f.Name()); err != nil {
return fmt.Errorf("while loading %s: %w", f.Name(), err)
}
}
}
return nil
}
View on GitHub (pinned to 909b515798)
Solutions
- Look at the wrapped inner error in the message to see whether it is a read or a YAML parse failure, then fix that file.
- Fix the YAML syntax in the named test directory's config.yaml (validate with `yamllint` or `python -c 'import yaml,sys;yaml.safe_load(open(sys.argv[1]))' <file>`).
- Restore the missing config.yaml (e.g. `git checkout -- tests/<name>/config.yaml`) if it was deleted or not copied.
- Remove or fix any stray directory under the tests folder that is not a valid hub test item.
Example fix
null
Defensive patterns
Strategy: validation
Validate before calling
entries, _ := os.ReadDir(testsFolder)
for _, e := range entries {
if !e.IsDir() { continue }
if _, err := os.Stat(filepath.Join(testsFolder, e.Name(), "config.yaml")); err != nil {
return fmt.Errorf("test dir %s has no config.yaml", e.Name())
}
} Try / catch
err := h.LoadAllTests(ctx)
if err != nil {
var wrapped interface{ Unwrap() error }
if errors.As(err, &inner) { log.Printf("bad test: %v", inner) }
return err
} Prevention
- Keep test directories complete: every test dir must contain config.yaml.
- Validate test YAML in CI before running LoadAllTests.
- Clean stray directories out of the tests folder.
When it happens
Trigger: LoadAllTests encounters a test directory whose config.yaml is missing, unreadable, or contains invalid YAML, causing LoadTestItem (and thus NewTest) to return an error.
Common situations: A partially copied or checked-out hub test directory; a test folder missing its config file; hand-edited test YAML with syntax errors; permissions on the tests directory; a stray non-test directory inside the tests folder that lacks a config.
Related errors
- parsing: %w
- unable to serialize overrides: %w
- unable to run assertion on file '%s': %w
- no appsec_config provided
- VictoriaLogs url is mandatory
AI-assisted analysis of crowdsecurity/crowdsec@909b515798 (2026-09-06).
Data as JSON: /api/errors/2fbd19ad8d5fb62e.
Report an issue: GitHub.