juicedata/juicefs · error

OS %s is not supported

Error message

OS %s is not supported

What it means

doUmount performs OS-specific unmounting (fusermount/umount on Linux, diskutil on macOS, taskkill on Windows). The switch on runtime.GOOS has cases only for linux, darwin, and windows; any other GOOS falls into default and returns this error. It indicates a build/runtime platform JuiceFS does not support unmounting on.

Source

Thrown at cmd/umount.go:91

			} else {
				cmd = exec.Command("fusermount", "-u", mp)
			}
		} else {
			if force {
				cmd = exec.Command("umount", "-l", mp)
			} else {
				cmd = exec.Command("umount", mp)
			}
		}
	case "windows":
		if !force {
			_ = os.Mkdir(filepath.Join(mp, ".UMOUNTIT"), 0777)
			return nil
		} else {
			cmd = exec.Command("taskkill", "/IM", "juicefs.exe", "/F")
		}
	default:
		return fmt.Errorf("OS %s is not supported", runtime.GOOS)
	}
	out, err := cmd.CombinedOutput()
	if err != nil && len(out) != 0 {
		err = errors.New(string(out))
	}
	return err
}

func umount(ctx *cli.Context) error {
	setup(ctx, 1)
	mp := ctx.Args().Get(0)
	if ctx.Bool("flush") {
		raw, err := readConfig(mp)
		if err != nil {
			if os.IsNotExist(err) {
				return fmt.Errorf("not a JuiceFS mount point")
			}
			return errors.Wrap(err, "failed to read config")

View on GitHub (pinned to c9a67b23e8)

Solutions

  1. Unmount manually with the platform tool: `umount <mp>` or `fusermount -u <mp>` on Linux-like systems.
  2. Run JuiceFS on a supported OS (linux, darwin, windows).
  3. If support is genuinely needed, add a case for the GOOS in cmd/umount.go's doUmount switch.
Defensive patterns

Strategy: fallback

Validate before calling

if runtime.GOOS != "linux" && runtime.GOOS != "darwin" && runtime.GOOS != "windows" {
    // use platform umount directly instead of juicefs umount
}

Prevention

When it happens

Trigger: Running `juicefs umount` on a GOOS outside {linux, darwin, windows} — e.g. freebsd, openbsd, or android builds.

Common situations: Running a non-cgo or custom-built binary on BSD variants; cross-compiled binaries executed on unsupported platforms; CI containers on unusual platforms.

Understand the failure class

Background: "unsupported platform" / "not supported on this platform" errors: what they mean and how to fix them — this error's family across 47 libraries.

Related errors


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