{"record":{"id":"e126563e6b47161f","repo":"JuliusBrussee/caveman","slug":"cachebench-clock-regressed-while-replaying-q","errorCode":null,"errorMessage":"cachebench: clock regressed while replaying %q","messagePattern":"cachebench: clock regressed while replaying %q","errorType":"exception","errorClass":"ReplayRunError","httpStatus":null,"severity":"error","filePath":"cacheengine/cachebench/replay.go","lineNumber":686,"sourceCode":"}\n\nfunc (runner ReplayRunner) executePrepared(ctx context.Context, item preparedReplay, evidence ReplayEvidenceRecord, started time.Time, now func() time.Time) (ReplayResult, error) {\n\trecord, optimized := item.record, item.optimized\n\tresponse, sendErr := runner.Transport.Send(ctx, ReplayOutbound{\n\t\tRequestID: record.RequestID, Provider: record.Provider, Model: record.Model,\n\t\tRegion: record.Region, Endpoint: record.Endpoint, Body: append([]byte(nil), optimized.Body...),\n\t})\n\tcompleted := now().UTC()\n\tevidence.HTTPStatus = response.StatusCode\n\tif len(response.Body) > 0 {\n\t\tevidence.ProviderEvidenceSHA256 = bodyDigest(response.Body)\n\t}\n\tif completed.Before(started) {\n\t\tevidence.CompletedAt = started.Format(time.RFC3339Nano)\n\t\tevidence.FailureCode = \"clock_regression\"\n\t\treturn ReplayResult{Evidence: evidence, ProviderResponse: append([]byte(nil), response.Body...)}, &ReplayRunError{\n\t\t\tRequestID: record.RequestID, FailureCode: evidence.FailureCode,\n\t\t\tErr: fmt.Errorf(\"cachebench: clock regressed while replaying %q\", record.RequestID),\n\t\t}\n\t}\n\tevidence.CompletedAt = completed.Format(time.RFC3339Nano)\n\tevidence.LatencyMilliseconds = completed.Sub(started).Milliseconds()\n\tif sendErr != nil {\n\t\tevidence.FailureCode = \"transport_error\"\n\t\treturn ReplayResult{Evidence: evidence, ProviderResponse: append([]byte(nil), response.Body...)}, &ReplayRunError{\n\t\t\tRequestID: record.RequestID, FailureCode: evidence.FailureCode,\n\t\t\tErr: fmt.Errorf(\"cachebench: provider transport failed for %q: %w\", record.RequestID, sendErr),\n\t\t}\n\t}\n\tif !validProviderRequestID(response.ProviderRequestID) {\n\t\tevidence.FailureCode = \"provider_response_invalid\"\n\t\treturn ReplayResult{Evidence: evidence, ProviderResponse: append([]byte(nil), response.Body...)}, &ReplayRunError{\n\t\t\tRequestID: record.RequestID, FailureCode: evidence.FailureCode,\n\t\t\tErr: fmt.Errorf(\"cachebench: provider returned invalid request identity for %q\", record.RequestID),\n\t\t}\n\t}","sourceCodeStart":668,"sourceCodeEnd":704,"githubUrl":"https://github.com/JuliusBrussee/caveman/blob/766dce6b1394ebb56a3090748d5a0240a5aefb36/cacheengine/cachebench/replay.go#L668-L704","documentation":"The completion timestamp captured after the provider call is before the start timestamp — the system clock jumped backwards mid-request. The run fails closed with failure code clock_regression and completion is clamped to the start time.","triggerScenarios":"Thrown at cacheengine/cachebench/replay.go:686 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Fix clock synchronisation (NTP) on the replay host","Re-run the replay once the clock is stable"],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"766dce6b1394ebb56a3090748d5a0240a5aefb36","analyzedAt":"2026-08-18T03:14:35.516Z","contentChangedAt":"2026-08-18T03:14:35.516Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}