juicedata/juicefs · error
marshal protobuf: %w
Error message
marshal protobuf: %w
What it means
Returned by RemoteWriter.Push when protobuf marshalling of the assembled WriteRequest fails. This indicates structurally invalid data in the time series (e.g. invalid label names), not a network problem.
Source
Thrown at sdk/java/libjfs/remote_write.go:164
return err
}
}
// Convert metrics to TimeSeries
tsList, err := rw.ConvertMetricsToTimeSeries(mfs)
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])
}
}View on GitHub (pinned to c9a67b23e8)
Solutions
- Validate metric/label naming before pushing to the remote write endpoint
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at sdk/java/libjfs/remote_write.go:164 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/47d336a5fb3d85c6.
Report an issue: GitHub.