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 = version

View on GitHub (pinned to c9a67b23e8)

Solutions

  1. Ignore it if telemetry is unwanted — the error only affects usage reporting, not FS operation
  2. Check network/proxy rules allow HTTPS to juicefs.com
  3. Retry later; the endpoint may be temporarily failing
  4. 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

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


AI-assisted analysis of juicedata/juicefs@c9a67b23e8 (2026-09-06). Data as JSON: /api/errors/57e31b0a569b2f0a. Report an issue: GitHub.