juicedata/juicefs · error

list quotas

Error message

list quotas

What it means

Returned by `juicefs config` when listing directory quotas fails while dir-stats is being disabled (or quota-related reconfiguration). The wrapped meta.HandleQuota error aborts the config update because quota state could not be safely read or migrated.

Solutions

  1. Check metadata engine connectivity, then retry the config command
  2. Manually inspect quotas with `juicefs quota list` and clean up before disabling dir-stats
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at cmd/config.go:482 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/b1450eeae00fa274. Report an issue: GitHub.

Appendix: source

Thrown at cmd/config.go:482

				format.Inodes > 0 && iused >= format.Inodes {
				warn("New quota is too small (used / quota): %d / %d bytes, %d / %d inodes.",
					usedSpace, format.Capacity, iused, format.Inodes)
				if !yes && !userConfirmed() {
					return fmt.Errorf("Aborted.")
				}
			}
		}
		if trash && format.TrashDays == 0 {
			warn("The current trash will be emptied and future removed files will purged immediately.")
			if !yes && !userConfirmed() {
				return fmt.Errorf("Aborted.")
			}
		}
		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 {

View on GitHub (pinned to c9a67b23e8)