juicedata/juicefs · error

cannot disable acl

Error message

cannot disable acl

What it means

Returned by `juicefs config` when the user attempts to turn off enable-acl on a volume where ACL support was previously enabled. POSIX ACL data may already exist in the metadata, so the CLI refuses the downgrade instead of silently orphaning ACL entries.

Source

Thrown at cmd/config.go:370

				requireMinClientVersion(new)
			}
		case "max-client-version":
			if new := ctx.String(flag); new != format.MaxClientVersion {
				if version.Parse(new) == nil {
					return fmt.Errorf("Invalid version string: %s", new)
				}
				msg.WriteString(fmt.Sprintf("%s: %s -> %s\n", flag, format.MaxClientVersion, new))
				format.MaxClientVersion = new
				clientVer = true
			}
		case "enable-acl":
			if enableACL := ctx.Bool(flag); enableACL != format.EnableACL {
				if enableACL {
					msg.WriteString(fmt.Sprintf("%s: %v -> %v\n", flag, format.EnableACL, true))
					format.EnableACL = true
					requireMinClientVersion("1.2.0-A")
				} else {
					return errors.New("cannot disable acl")
				}
			}
		case "ranger-rest-url":
			if newUrl := ctx.String(flag); newUrl != format.RangerRestUrl {
				msg.WriteString(fmt.Sprintf("%s: %s -> %s\n", flag, format.RangerRestUrl, newUrl))
				format.RangerRestUrl = newUrl
				requireMinClientVersion("1.3.0-A")
			}
		case "ranger-service":
			if newService := ctx.String(flag); newService != format.RangerService {
				msg.WriteString(fmt.Sprintf("%s: %s -> %s\n", flag, format.RangerService, newService))
				format.RangerService = newService
				requireMinClientVersion("1.3.0-A")
			}
		case "kerberos-config-file":
			msg.WriteString(fmt.Sprintf("%s: updated\n", flag))
			format.KerbConf = readKerbConf(ctx.String(flag))
			requireMinClientVersion("1.4.0-A")

View on GitHub (pinned to c9a67b23e8)

Solutions

  1. Remove all ACLs (setfacl -b) from every file first, then retry the config change
  2. Keep ACLs enabled, or recreate the volume if ACL support is truly unwanted
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at cmd/config.go:370 when the library encounters an invalid state.

Common situations: See trigger scenarios.


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