JuliusBrussee/caveman · error

cache-replay: trace exceeds %d bytes

Error message

cache-replay: trace exceeds %d bytes

What it means

Error "cache-replay: trace exceeds %d bytes" thrown in JuliusBrussee/caveman.

Source

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

}

func readTrace(path string, maxBytes int64, maxRecords int) ([]cachebench.TraceRecord, string, error) {
	file, err := os.Open(path)
	if err != nil {
		return nil, "", err
	}
	defer file.Close()
	hash := sha256.New()
	limited := &io.LimitedReader{R: file, N: maxBytes + 1}
	readLimits := cachebench.DefaultTraceReadLimits()
	readLimits.MaxLineBytes = int(maxBytes)
	readLimits.MaxRecords = maxRecords
	records, err := cachebench.ReadTraceJSONLWithLimits(io.TeeReader(limited, hash), readLimits)
	if err != nil {
		return nil, "", err
	}
	if limited.N <= 0 {
		return nil, "", fmt.Errorf("cache-replay: trace exceeds %d bytes", maxBytes)
	}
	return records, hex.EncodeToString(hash.Sum(nil)), nil
}

func validateProviderCredentials(records []cachebench.TraceRecord) error {
	providers := map[string]bool{}
	for _, record := range records {
		providers[record.Provider] = true
	}
	for provider := range providers {
		switch provider {
		case "openai":
			if os.Getenv("OPENAI_API_KEY") == "" {
				return errors.New("cache-replay: OPENAI_API_KEY unavailable")
			}
		case "anthropic":
			if os.Getenv("ANTHROPIC_API_KEY") == "" {
				return errors.New("cache-replay: ANTHROPIC_API_KEY unavailable")

View on GitHub (pinned to 27d5a3981a)

Solutions

  1. Reduce the trace below the byte limit.

When it happens

Trigger: Thrown at cacheengine/cmd/cache-replay/main.go:363 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/ba68bc89eccf0fd1. Report an issue: GitHub.