JuliusBrussee/caveman · error

cachebench: duplicate replay evidence request %q

Error message

cachebench: duplicate replay evidence request %q

What it means

Error "cachebench: duplicate replay evidence request %q" thrown in JuliusBrussee/caveman.

Source

Thrown at cacheengine/cachebench/replay.go:266

		return ReplayEvidenceSummary{}, errors.New("cachebench: no replay evidence")
	}
	summary := ReplayEvidenceSummary{
		Schema: ReplaySummarySchema, Requests: len(records),
		TimingFaithful: true, InputBudgetClaimedProviderCounted: true,
	}
	type accumulator struct {
		summary   ProviderReplaySummary
		latencies []int64
	}
	groups := map[string]*accumulator{}
	seen := map[string]bool{}
	latencies := make([]int64, 0, len(records))
	for index, record := range records {
		if err := validateReplayEvidence(record); err != nil {
			return ReplayEvidenceSummary{}, fmt.Errorf("cachebench: replay evidence %d: %w", index, err)
		}
		if seen[record.RequestID] {
			return ReplayEvidenceSummary{}, fmt.Errorf("cachebench: duplicate replay evidence request %q", record.RequestID)
		}
		seen[record.RequestID] = true
		group := groups[record.Provider]
		if group == nil {
			group = &accumulator{summary: ProviderReplaySummary{Provider: record.Provider}}
			groups[record.Provider] = group
		}
		group.summary.Requests++
		if record.Success {
			summary.Successful++
			group.summary.Successful++
			if record.QualityPassed {
				summary.QualityPassed++
				group.summary.QualityPassed++
			}
		} else {
			summary.Failed++
			group.summary.Failed++

View on GitHub (pinned to 27d5a3981a)

Solutions

  1. Remove the duplicate replay evidence request.

When it happens

Trigger: Thrown at cacheengine/cachebench/replay.go:266 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/3b571b7ac88fa8d6. Report an issue: GitHub.