juicedata/juicefs · error

remote_write failed: %s

Error message

remote_write failed: %s

What it means

Returned by RemoteWriter.Push when the remote write endpoint answers with a non-2xx HTTP status. The push was delivered but rejected (auth failure, bad payload, or server-side ingestion error) and the response status identifies which.

Source

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

	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)
	}

	var tsList []prompb.TimeSeries
	for _, sample := range samples {
		// Convert model.Metric to prompb.Label slice

View on GitHub (pinned to c9a67b23e8)

Solutions

  1. Check pushgateway/remote-write credentials if 401/403
  2. Inspect the server response code for payload issues (400) or server health (5xx)
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at sdk/java/libjfs/remote_write.go:191 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/d6110c8b8687fd36. Report an issue: GitHub.