{"record":{"id":"6791ebd4843b6855","repo":"plandex-ai/plandex","slug":"error-making-request-w","errorCode":null,"errorMessage":"error making request: %w","messagePattern":"error making request: %w","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"app/server/model/client.go","lineNumber":363,"sourceCode":"\treq.Header.Set(\"Accept\", \"text/event-stream\")\n\treq.Header.Set(\"Cache-Control\", \"no-cache\")\n\treq.Header.Set(\"Connection\", \"keep-alive\")\n\n\t// some providers send api key in the body, some in the header\n\t// some use other auth methods and so don't have a simple api key\n\tif client.ApiKey != \"\" {\n\t\treq.Header.Set(\"Authorization\", \"Bearer \"+client.ApiKey)\n\t}\n\tif client.OpenAIOrgId != \"\" {\n\t\treq.Header.Set(\"OpenAI-Organization\", client.OpenAIOrgId)\n\t}\n\n\taddOpenRouterHeaders(req)\n\n\t// Send the request\n\tresp, err := httpClient.Do(req) //nolint:bodyclose // body is closed in stream.Close()\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"error making request: %w\", err)\n\t}\n\n\tif resp.StatusCode < http.StatusOK || resp.StatusCode >= http.StatusBadRequest {\n\t\tdefer resp.Body.Close()\n\t\tbody, err := io.ReadAll(resp.Body)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"error reading error response: %w\", err)\n\t\t}\n\t\treturn nil, &HTTPError{\n\t\t\tStatusCode: resp.StatusCode,\n\t\t\tBody:       string(body),\n\t\t\tHeader:     resp.Header.Clone(), // retain Retry-After etc.\n\t\t}\n\t}\n\n\t// Log response headers\n\t// log.Println(\"Response headers:\")\n\t// for key, values := range resp.Header {","sourceCodeStart":345,"sourceCodeEnd":381,"githubUrl":"https://github.com/plandex-ai/plandex/blob/e2d772072efadbe41d2946d97d79be55532dbab5/app/server/model/client.go#L345-L381","documentation":"createChatCompletionStreamExtended: httpClient.Do fails issuing the streaming chat-completion request to the provider. Network-level failure — DNS, TLS, timeout, connection refused — before any response status is available.","triggerScenarios":"Thrown at app/server/model/client.go:363 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check the wrapped error for DNS/TLS/timeout specifics","Verify provider base URL and network egress","Retry; the streaming-retry wrapper may handle transient failures"],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"e2d772072efadbe41d2946d97d79be55532dbab5","analyzedAt":"2026-09-05T20:56:53.631Z","contentChangedAt":"2026-09-05T20:56:53.631Z","schemaVersion":2},"datasetVersion":"2026-09-12T22:17:10.623Z"}