juicedata/juicefs · warning
got %s
Error message
got %s
What it means
sendUsage posts anonymous usage stats to juicefs.com; if the HTTP response status is not 200 it wraps the status line (e.g. '500 Internal Server Error') into 'got %s'. It signals the usage-report endpoint rejected or failed the request, not a problem with the volume or data.
Source
Thrown at pkg/usage/usage.go:61
MetaEngine string `json:"metaEngine"` // type of meta engine
DataStore string `json:"dataStore"` // type of object store
}
func sendUsage(u usage) error {
body, err := json.Marshal(u)
if err != nil {
return err
}
req, err := http.NewRequest("POST", reportUrl, bytes.NewReader(body))
if err != nil {
return err
}
resp, err := http.DefaultClient.Do(req)
if err != nil {
return err
}
if resp.StatusCode != 200 {
return fmt.Errorf("got %s", resp.Status)
}
_, err = io.ReadAll(resp.Body)
return err
}
// ReportUsage will send anonymous usage data to juicefs.com to help the team
// understand how the community is using it. You can use `--no-usage-report`
// to disable this.
func ReportUsage(m meta.Meta, version string) {
ctx := meta.Background()
var u usage
if format, err := m.Load(false); err == nil {
u.VolumeID = format.UUID
u.DataStore = format.Storage
}
u.MetaEngine = m.Name()
u.SessionID = int64(rand.Uint32())
u.Version = versionView on GitHub (pinned to c9a67b23e8)
Solutions
- Ignore it if telemetry is unwanted — the error only affects usage reporting, not FS operation
- Check network/proxy rules allow HTTPS to juicefs.com
- Retry later; the endpoint may be temporarily failing
- Disable usage reporting via the supported flag/env so the call is skipped
Defensive patterns
Strategy: retry
Validate before calling
// precheck
req, _ := http.NewRequest("POST", url, body)
if _, err := http.DefaultClient.Do(req); err != nil { skipReporting() } Try / catch
if err := ReportUsage(...); err != nil { log.Debugf("usage report skipped: %v", err) } // non-fatal Prevention
- Treat telemetry errors as non-fatal and log at debug level
- Allowlist juicefs.com in proxy/firewall rules
- Provide an opt-out flag so failures are skipped entirely
When it happens
Trigger: The periodic/teardown call to ReportUsage reaches the server but receives a non-200 status (proxy interception, endpoint outage, captive portal, DNS hijack page).
Common situations: Corporate proxies or firewalls returning 403/407 for juicefs.com; transient 5xx from the telemetry endpoint; offline environments where a local gateway answers with an error page.
Understand the failure class
Background: "API error: {status}" and "HTTP 401/403/404/429/5xx" errors: non-2xx HTTP responses explained — this error's family across 27 libraries.
Related errors
- error GET request: %v
- bad response status %s
- are you connected to the network?
- error creating GET request: %v
- error GET request, status code %d
AI-assisted analysis of juicedata/juicefs@c9a67b23e8 (2026-09-06).
Data as JSON: /api/errors/57e31b0a569b2f0a.
Report an issue: GitHub.