juicedata/juicefs · error

create request: %w

Error message

create request: %w

What it means

http.NewRequest failed to build the POST request for the Prometheus remote-write endpoint after the snappy-compressed protobuf payload was prepared. Fires when the configured remote-write URL is malformed (bad scheme, host, or control characters), preventing metrics push.

Source

Thrown at sdk/java/libjfs/remote_write.go:170

	if err != nil {
		return fmt.Errorf("convert metrics: %w", err)
	}

	if len(tsList) == 0 {
		return nil // No samples to push
	}

	// Send to remote write endpoint
	wr := &prompb.WriteRequest{Timeseries: tsList}
	data, err := wr.Marshal()
	if err != nil {
		return fmt.Errorf("marshal protobuf: %w", err)
	}

	compressed := snappy.Encode(nil, data)
	req, err := http.NewRequest("POST", rw.url, bytes.NewReader(compressed))
	if err != nil {
		return fmt.Errorf("create request: %w", err)
	}

	req.Header.Set("Content-Encoding", "snappy")
	req.Header.Set("Content-Type", "application/x-protobuf")
	req.Header.Set("X-Prometheus-Remote-Write-Version", "0.1.0")

	if rw.auth != "" {
		if strings.Contains(rw.auth, ":") {
			parts := strings.Split(rw.auth, ":")
			req.SetBasicAuth(parts[0], parts[1])
		}
	}

	resp, err := rw.client.Do(req)
	if err != nil {
		return fmt.Errorf("send request: %w", err)
	}
	defer resp.Body.Close()

View on GitHub (pinned to c9a67b23e8)

Solutions

  1. Fix the configured remote write URL so it is a valid absolute http(s) URL
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at sdk/java/libjfs/remote_write.go:170 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of juicedata/juicefs@c9a67b23e8 (2026-09-06). Data as JSON: /api/errors/eadde7d498cf64ff. Report an issue: GitHub.