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 sliceView on GitHub (pinned to c9a67b23e8)
Solutions
- Check pushgateway/remote-write credentials if 401/403
- 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.