{"record":{"id":"cf06e334d6c572e8","repo":"juicedata/juicefs","slug":"load-setting-v","errorCode":null,"errorMessage":"load setting: %v","messagePattern":"load setting: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/meta/status.go","lineNumber":54,"sourceCode":"\tPendingDeletedFileCount  int64 `json:\",omitempty\"`\n\tPendingDeletedFileSize   int64 `json:\",omitempty\"`\n\tTrashSliceCount          int64 `json:\",omitempty\"`\n\tTrashSliceSize           int64 `json:\",omitempty\"`\n\tPendingDeletedSliceCount int64 `json:\",omitempty\"`\n\tPendingDeletedSliceSize  int64 `json:\",omitempty\"`\n}\n\ntype Sections struct {\n\tSetting  *Format\n\tSessions []*Session\n\tStat     *Statistic\n}\n\n// Status retrieves the status of the filesystem\nfunc Status(ctx context.Context, m Meta, trash bool, sections *Sections) error {\n\tformat, err := m.Load(true)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"load setting: %v\", err)\n\t}\n\tformat.RemoveSecret()\n\n\tsessions, err := m.ListSessions()\n\tif err != nil {\n\t\treturn fmt.Errorf(\"list sessions: %v\", err)\n\t}\n\n\tstat := &Statistic{}\n\tvar totalSpace uint64\n\tif err = m.StatFS(Background(), RootInode, &totalSpace, &stat.AvailableSpace, &stat.UsedInodes, &stat.AvailableInodes); err != syscall.Errno(0) {\n\t\treturn fmt.Errorf(\"stat fs: %v\", err)\n\t}\n\tstat.UsedSpace = totalSpace - stat.AvailableSpace\n\n\tif trash {\n\t\tprogress := utils.NewProgress(false)\n\t\tdefer progress.Done()","sourceCodeStart":36,"sourceCodeEnd":72,"githubUrl":"https://github.com/juicedata/juicefs/blob/c9a67b23e8e08ec23ec331aa6f1675e2319e921c/pkg/meta/status.go#L36-L72","documentation":"`juicefs status <meta-url>` first loads the volume format (settings record) from the metadata engine. If Meta.Load fails — the volume record is missing, unreadable, or the metadata backend is unreachable — Status wraps the failure as 'load setting'. No status output can be produced without the format.","triggerScenarios":"Running `juicefs status META-URL` where Load(true) errors: wrong meta URL pointing at an empty/nonexistent volume, wrong credentials, network failure to Redis/MySQL, or a corrupted/erased metadata store.","commonSituations":"Typo in the meta URL or pointing at a fresh Redis DB where the volume was never formatted; Redis AUTH/ACL misconfiguration; trying to inspect a volume whose metadata was deleted; typo'd bucket/vol name assumption — status takes a meta URL, not a mount point.","solutions":["Read the wrapped inner error: connection refused → server down; 'setting format not found' → wrong meta URL or unformatted volume.","Confirm you are passing the same META-URL used at `juicefs format` time (status expects a meta URL, not a mount point).","Check metadata backend health and credentials (redis-cli ping / mysql client connect).","If metadata is genuinely lost, the volume cannot be inspected; restore from metadata backup (`juicefs dump` artifacts) before retrying."],"exampleFix":"// before (mount point passed instead of meta URL)\njuicefs status /mnt/jfs\n// after\njuicefs status \"redis://127.0.0.1:6379/1\"","handlingStrategy":"validation","validationCode":"// shell\nredis-cli -u \"$META_URL\" PING || echo \"metadata backend unreachable\"\nredis-cli -u \"$META_URL\" EXISTS setting || echo \"volume not formatted at this meta URL\"","typeGuard":null,"tryCatchPattern":"if err := execStatus(metaURL); err != nil && strings.Contains(err.Error(), \"load setting\") {\n    log.Fatalf(\"wrong meta URL or volume not formatted: %v\", err)\n}","preventionTips":["Pass the META-URL, never a mount point, to juicefs status","Store the meta URL used at format time in config management","Keep metadata backups (juicefs dump) so a lost record is recoverable"],"tags":["cli","metadata","status","config"],"backgroundTag":"resource-not-found","analyzedSha":"c9a67b23e8e08ec23ec331aa6f1675e2319e921c","analyzedAt":"2026-09-06T17:55:48.476Z","contentChangedAt":"2026-09-06T17:55:48.476Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}