slackhq/nebula · error

problem while reading directory %s: %s

Error message

problem while reading directory %s: %s

What it means

Wrapping error from config.C.resolve: readDirNames failed while listing a directory during recursive config discovery — typically a permission error or the directory disappearing mid-scan. The directory path and OS error are both included; resolution stops immediately.

Source

Thrown at config/config.go:344

	return v
}

// direct signifies if this is the config path directly specified by the user,
// versus a file/dir found by recursing into that path
func (c *C) resolve(path string, direct bool) error {
	i, err := os.Stat(path)
	if err != nil {
		return nil
	}

	if !i.IsDir() {
		c.addFile(path, direct)
		return nil
	}

	paths, err := readDirNames(path)
	if err != nil {
		return fmt.Errorf("problem while reading directory %s: %s", path, err)
	}

	for _, p := range paths {
		err := c.resolve(filepath.Join(path, p), false)
		if err != nil {
			return err
		}
	}

	return nil
}

func (c *C) addFile(path string, direct bool) error {
	ext := filepath.Ext(path)

	if !direct && ext != ".yaml" && ext != ".yml" {
		return nil
	}

View on GitHub (pinned to dd8f660c0a)

Solutions

  1. Check read permissions on the reported directory
  2. Remove/replace unreadable subdirectories from the config path
  3. Avoid pointing config at directories with unrelated restricted content
Defensive patterns

Strategy: fallback

When it happens

Trigger: Thrown at config/config.go:344 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of slackhq/nebula@dd8f660c0a (2026-09-03). Data as JSON: /api/errors/8a6a725588e422b2. Report an issue: GitHub.