{"record":{"id":"6395e4b3be67dc8f","repo":"JuliusBrussee/caveman","slug":"cachebench-provider-returned-http-d-for-q","errorCode":null,"errorMessage":"cachebench: provider returned HTTP %d for %q","messagePattern":"cachebench: provider returned HTTP (.+?) for %q","errorType":"exception","errorClass":"ReplayRunError","httpStatus":null,"severity":"error","filePath":"cacheengine/cachebench/replay.go","lineNumber":710,"sourceCode":"\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}\n\tevidence.ProviderRequestID = response.ProviderRequestID\n\tif response.StatusCode < 200 || response.StatusCode >= 300 {\n\t\tevidence.FailureCode = \"provider_http_status\"\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 HTTP %d for %q\", response.StatusCode, record.RequestID),\n\t\t}\n\t}\n\tusage, ok := cacheengine.ExtractProviderUsage(record.Provider, response.Body)\n\tif !ok {\n\t\tevidence.FailureCode = \"provider_usage_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 usage unavailable for %q\", record.RequestID),\n\t\t}\n\t}\n\tevidence.ProviderUsageSHA256 = bodyDigest(usage.RawUsage)\n\tevidence.ProviderTotalInputTokens = usage.TotalInputTokens\n\tevidence.ProviderOutputTokens = usage.OutputTokens\n\tif usage.TotalInputTokens > record.DeclaredInputTokens {\n\t\tevidence.FailureCode = \"provider_input_budget_exceeded\"\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 input tokens %d exceed declared ceiling %d for %q\", usage.TotalInputTokens, record.DeclaredInputTokens, record.RequestID),","sourceCodeStart":692,"sourceCodeEnd":728,"githubUrl":"https://github.com/JuliusBrussee/caveman/blob/766dce6b1394ebb56a3090748d5a0240a5aefb36/cacheengine/cachebench/replay.go#L692-L728","documentation":"The provider returned a non-2xx HTTP status for a replay request; failure code provider_http_status. The status code and request id are included so the failure can be cross-checked with provider dashboards.","triggerScenarios":"Thrown at cacheengine/cachebench/replay.go:710 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["For 429/5xx, back off and retry the replay run","For 4xx, inspect the request body against the provider's API contract"],"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"}