{"record":{"id":"b0865e6752308721","repo":"juicedata/juicefs","slug":"clients-below-version-s-will-be-rejected-after-mo","errorCode":null,"errorMessage":"Clients below version %s will be rejected after modification.","messagePattern":"Clients below version (.+?) will be rejected after modification\\.","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"cmd/config.go","lineNumber":495,"sourceCode":"\t\t}\n\t\tif originDirStats && !format.DirStats {\n\t\t\tqs := make(map[string]*meta.Quota)\n\t\t\terr := m.HandleQuota(meta.Background(), meta.QuotaList, \"\", meta.DirQuotaType, qs, false, false, false)\n\t\t\tif err != nil {\n\t\t\t\treturn errors.Wrap(err, \"list quotas\")\n\t\t\t}\n\t\t\tif len(qs) != 0 {\n\t\t\t\tpaths := make([]string, 0, len(qs))\n\t\t\t\tfor path := range qs {\n\t\t\t\t\tpaths = append(paths, path)\n\t\t\t\t}\n\t\t\t\treturn fmt.Errorf(\"cannot disable dir stats when there are still %d dir quotas: %v\", len(qs), paths)\n\t\t\t}\n\t\t}\n\t\tif clientVer {\n\t\t\tconfirmClientVer := false\n\t\t\tif format.CheckVersion() != nil {\n\t\t\t\twarn(\"Clients below version %s will be rejected after modification.\", format.MinClientVersion)\n\t\t\t\tconfirmClientVer = true\n\t\t\t}\n\n\t\t\t// check all clients\n\t\t\tif sessions, err := m.ListSessions(); err == nil {\n\t\t\t\twarnMsg := \"\"\n\t\t\t\tfor _, session := range sessions {\n\t\t\t\t\tif err := format.CheckCliVersion(version.Parse(session.Version)); err != nil {\n\t\t\t\t\t\twarnMsg += fmt.Sprintf(\"host %s pid %d client version error: %s\\n\", session.HostName, session.ProcessID, err)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif warnMsg != \"\" {\n\t\t\t\t\tfmt.Println(warnMsg)\n\t\t\t\t\tconfirmClientVer = true\n\t\t\t\t}\n\t\t\t}\n\t\t\tif confirmClientVer && !yes && !userConfirmed() {\n\t\t\t\treturn fmt.Errorf(\"Aborted.\")","sourceCodeStart":477,"sourceCodeEnd":513,"githubUrl":"https://github.com/juicedata/juicefs/blob/c9a67b23e8e08ec23ec331aa6f1675e2319e921c/cmd/config.go#L477-L513","documentation":"During 'juicefs config', when the minimum client version check is active (format.CheckVersion() fails), the CLI warns that after applying the modification all connected clients older than format.MinClientVersion will be rejected. It then enumerates active sessions so the operator can see which clients would be kicked.","triggerScenarios":"Running 'juicefs config' on a volume where MinClientVersion enforcement is set (or being raised) and some running clients are older than that version; changing other settings while a version floor is configured.","commonSituations":"Mixed-version clusters after a partial upgrade; pinning MinClientVersion to require a bugfix while long-running mounts still use older binaries.","solutions":["Upgrade all mounted clients to at least format.MinClientVersion before applying the change ('juicefs config --min-client-version' shows/sets it)","Restart or remount outdated clients with a current juicefs binary","If the version floor is wrong, clear/lower it via 'juicefs config META --min-client-version <old>' first","Proceed with --yes only if kicking old clients is acceptable"],"exampleFix":"// before\njuicefs config sqlite3://test.db --capacity 100G   # old clients connected\n// after (upgrade clients first, then)\njuicefs config sqlite3://test.db --capacity 100G --yes","handlingStrategy":"validation","validationCode":"sessions, err := m.ListSessions()\n// verify all session versions >= format.MinClientVersion before applying config","typeGuard":null,"tryCatchPattern":"if strings.Contains(warnOutput, \"will be rejected after modification\") {\n\t// upgrade clients first or confirm\n}","preventionTips":["Keep all mounted clients on the same juicefs version before config changes","Check 'juicefs status META' for outdated sessions","Raise MinClientVersion only after a completed rollout"],"tags":["cli","versioning","compatibility"],"backgroundTag":"min-client-version-mismatch","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"}