JuliusBrussee/caveman · error

cache-replay: output directory must be new: %w

Error message

cache-replay: output directory must be new: %w

What it means

Error "cache-replay: output directory must be new: %w" thrown in JuliusBrussee/caveman.

Source

Thrown at cacheengine/cmd/cache-replay/main.go:440

	return result, nil
}

func validEnvironmentName(value string) bool {
	if value == "" || len(value) > 128 {
		return false
	}
	for index, char := range value {
		if char == '_' || char >= 'A' && char <= 'Z' || index > 0 && char >= '0' && char <= '9' {
			continue
		}
		return false
	}
	return true
}

func createEvidenceDirectory(path string) error {
	if err := os.Mkdir(path, 0o700); err != nil {
		return fmt.Errorf("cache-replay: output directory must be new: %w", err)
	}
	for _, name := range []string{"responses", "quality", "evidence", "observations"} {
		if err := os.Mkdir(filepath.Join(path, name), 0o700); err != nil {
			return err
		}
	}
	return nil
}

func atomicWrite(path string, body []byte) error {
	return atomicWriteStream(path, func(writer io.Writer) error {
		_, err := writer.Write(body)
		return err
	})
}

func atomicWriteStream(path string, write func(io.Writer) error) error {
	directory := filepath.Dir(path)

View on GitHub (pinned to 27d5a3981a)

Solutions

  1. Point -output at a new, non-existent directory.

When it happens

Trigger: Thrown at cacheengine/cmd/cache-replay/main.go:440 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of JuliusBrussee/caveman@27d5a3981a (2026-08-15). Data as JSON: /api/errors/3de90277a6c8ca3c. Report an issue: GitHub.