juicedata/juicefs · error
send request: %w
Error message
send request: %w
What it means
Returned by RemoteWriter.Push when the HTTP POST to the Prometheus remote write endpoint fails at the transport level — connection refused, timeout, or DNS failure. The endpoint is unreachable, not merely erroring.
Source
Thrown at sdk/java/libjfs/remote_write.go:186
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()
if resp.StatusCode/100 != 2 {
return fmt.Errorf("remote_write failed: %s", resp.Status)
}
return nil
}
// ConvertMetricsToTimeSeries converts Prometheus metric families to TimeSeries.
func (rw *RemoteWriter) ConvertMetricsToTimeSeries(mfs []*dto.MetricFamily) ([]prompb.TimeSeries, error) {
now := model.Time(time.Now().UnixMilli())
samples, err := expfmt.ExtractSamples(&expfmt.DecodeOptions{
Timestamp: now,
}, mfs...)
if err != nil {
return nil, fmt.Errorf("extract samples: %w", err)View on GitHub (pinned to c9a67b23e8)
Solutions
- Verify the remote write URL is reachable from the client
- Check network/proxy settings and retry; transient network failures are expected
Defensive patterns
Strategy: retry
When it happens
Trigger: Thrown at sdk/java/libjfs/remote_write.go:186 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/bf051dd95f0f55e0.
Report an issue: GitHub.