juicedata/juicefs · warning
Clients below version %s will be rejected after modification
Error message
Clients below version %s will be rejected after modification.
What it means
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.
Source
Thrown at cmd/config.go:495
}
if originDirStats && !format.DirStats {
qs := make(map[string]*meta.Quota)
err := m.HandleQuota(meta.Background(), meta.QuotaList, "", meta.DirQuotaType, qs, false, false, false)
if err != nil {
return errors.Wrap(err, "list quotas")
}
if len(qs) != 0 {
paths := make([]string, 0, len(qs))
for path := range qs {
paths = append(paths, path)
}
return fmt.Errorf("cannot disable dir stats when there are still %d dir quotas: %v", len(qs), paths)
}
}
if clientVer {
confirmClientVer := false
if format.CheckVersion() != nil {
warn("Clients below version %s will be rejected after modification.", format.MinClientVersion)
confirmClientVer = true
}
// check all clients
if sessions, err := m.ListSessions(); err == nil {
warnMsg := ""
for _, session := range sessions {
if err := format.CheckCliVersion(version.Parse(session.Version)); err != nil {
warnMsg += fmt.Sprintf("host %s pid %d client version error: %s\n", session.HostName, session.ProcessID, err)
}
}
if warnMsg != "" {
fmt.Println(warnMsg)
confirmClientVer = true
}
}
if confirmClientVer && !yes && !userConfirmed() {
return fmt.Errorf("Aborted.")View on GitHub (pinned to c9a67b23e8)
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
Example fix
// before juicefs config sqlite3://test.db --capacity 100G # old clients connected // after (upgrade clients first, then) juicefs config sqlite3://test.db --capacity 100G --yes
Defensive patterns
Strategy: validation
Validate before calling
sessions, err := m.ListSessions() // verify all session versions >= format.MinClientVersion before applying config
Try / catch
if strings.Contains(warnOutput, "will be rejected after modification") {
// upgrade clients first or confirm
} Prevention
- 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
When it happens
Trigger: 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.
Common situations: Mixed-version clusters after a partial upgrade; pinning MinClientVersion to require a bugfix while long-running mounts still use older binaries.
Related errors
- cannot lower min-client-version from %s to %s
- incompatible hadoop version
- Unsupported ByteMultiple " + sMultiple
- wrong type
- random, backward, skip are only valid under read
AI-assisted analysis of juicedata/juicefs@c9a67b23e8 (2026-09-06).
Data as JSON: /api/errors/b0865e6752308721.
Report an issue: GitHub.