plandex-ai/plandex · error

error making request: %w

Error message

error making request: %w

What it means

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.

Source

Thrown at app/server/model/client.go:363

	req.Header.Set("Accept", "text/event-stream")
	req.Header.Set("Cache-Control", "no-cache")
	req.Header.Set("Connection", "keep-alive")

	// some providers send api key in the body, some in the header
	// some use other auth methods and so don't have a simple api key
	if client.ApiKey != "" {
		req.Header.Set("Authorization", "Bearer "+client.ApiKey)
	}
	if client.OpenAIOrgId != "" {
		req.Header.Set("OpenAI-Organization", client.OpenAIOrgId)
	}

	addOpenRouterHeaders(req)

	// Send the request
	resp, err := httpClient.Do(req) //nolint:bodyclose // body is closed in stream.Close()
	if err != nil {
		return nil, fmt.Errorf("error making request: %w", err)
	}

	if resp.StatusCode < http.StatusOK || resp.StatusCode >= http.StatusBadRequest {
		defer resp.Body.Close()
		body, err := io.ReadAll(resp.Body)
		if err != nil {
			return nil, fmt.Errorf("error reading error response: %w", err)
		}
		return nil, &HTTPError{
			StatusCode: resp.StatusCode,
			Body:       string(body),
			Header:     resp.Header.Clone(), // retain Retry-After etc.
		}
	}

	// Log response headers
	// log.Println("Response headers:")
	// for key, values := range resp.Header {

View on GitHub (pinned to e2d772072e)

Solutions

  1. Check the wrapped error for DNS/TLS/timeout specifics
  2. Verify provider base URL and network egress
  3. Retry; the streaming-retry wrapper may handle transient failures
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at app/server/model/client.go:363 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of plandex-ai/plandex@e2d772072e (2026-09-05). Data as JSON: /api/errors/6791ebd4843b6855. Report an issue: GitHub.