{"record":{"id":"80f08a79b23fb9c7","repo":"JuliusBrussee/caveman","slug":"cachebench-replay-engine-transport-verifier-an","errorCode":null,"errorMessage":"cachebench: replay engine, transport, verifier, and emitter required","messagePattern":"cachebench: replay engine, transport, verifier, and emitter required","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"cacheengine/cachebench/replay.go","lineNumber":466,"sourceCode":"\tfor _, record := range records {\n\t\tprovider := strings.ToLower(strings.TrimSpace(record.Provider))\n\t\tif provider == \"\" {\n\t\t\treturn fmt.Errorf(\"cachebench: replay request %q has empty provider\", record.RequestID)\n\t\t}\n\t\tcounts[provider]++\n\t}\n\tfor provider, count := range counts {\n\t\tif count < target.MinEligibleRequest {\n\t\t\treturn fmt.Errorf(\"cachebench: provider %q population %d cannot meet minimum eligible requests %d\", provider, count, target.MinEligibleRequest)\n\t\t}\n\t}\n\treturn nil\n}\n\n// Run validates full population, prepares equivalent bodies, then dispatches replay.\nfunc (runner ReplayRunner) Run(ctx context.Context, records []TraceRecord, emit func(ReplayResult) error) error {\n\tif runner.Engine == nil || runner.Transport == nil || runner.Verifier == nil || emit == nil {\n\t\treturn errors.New(\"cachebench: replay engine, transport, verifier, and emitter required\")\n\t}\n\tif _, err := ValidateReplay(records, runner.Limits, runner.TimeScale); err != nil {\n\t\treturn err\n\t}\n\tprepared, err := runner.prepare(ctx, records)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif runner.Target != nil {\n\t\tif err := validatePreparedReplayTarget(prepared, *runner.Target); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tnow := runner.Now\n\tif now == nil {\n\t\tnow = time.Now\n\t}\n\tsleep := runner.Sleep","sourceCodeStart":448,"sourceCodeEnd":484,"githubUrl":"https://github.com/JuliusBrussee/caveman/blob/27d5a3981a347890211bb1bf2439e5c821a63bc9/cacheengine/cachebench/replay.go#L448-L484","documentation":"Error \"cachebench: replay engine, transport, verifier, and emitter required\" thrown in JuliusBrussee/caveman.","triggerScenarios":"Thrown at cacheengine/cachebench/replay.go:466 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Provide the replay engine, transport, verifier, and emitter; all four are required."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"27d5a3981a347890211bb1bf2439e5c821a63bc9","analyzedAt":"2026-08-15T09:26:11.751Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}