{"record":{"id":"b2b41a02f90058bd","repo":"juicedata/juicefs","slug":"os-s-is-not-supported","errorCode":null,"errorMessage":"OS %s is not supported","messagePattern":"OS (.+?) is not supported","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"cmd/umount.go","lineNumber":91,"sourceCode":"\t\t\t} else {\n\t\t\t\tcmd = exec.Command(\"fusermount\", \"-u\", mp)\n\t\t\t}\n\t\t} else {\n\t\t\tif force {\n\t\t\t\tcmd = exec.Command(\"umount\", \"-l\", mp)\n\t\t\t} else {\n\t\t\t\tcmd = exec.Command(\"umount\", mp)\n\t\t\t}\n\t\t}\n\tcase \"windows\":\n\t\tif !force {\n\t\t\t_ = os.Mkdir(filepath.Join(mp, \".UMOUNTIT\"), 0777)\n\t\t\treturn nil\n\t\t} else {\n\t\t\tcmd = exec.Command(\"taskkill\", \"/IM\", \"juicefs.exe\", \"/F\")\n\t\t}\n\tdefault:\n\t\treturn fmt.Errorf(\"OS %s is not supported\", runtime.GOOS)\n\t}\n\tout, err := cmd.CombinedOutput()\n\tif err != nil && len(out) != 0 {\n\t\terr = errors.New(string(out))\n\t}\n\treturn err\n}\n\nfunc umount(ctx *cli.Context) error {\n\tsetup(ctx, 1)\n\tmp := ctx.Args().Get(0)\n\tif ctx.Bool(\"flush\") {\n\t\traw, err := readConfig(mp)\n\t\tif err != nil {\n\t\t\tif os.IsNotExist(err) {\n\t\t\t\treturn fmt.Errorf(\"not a JuiceFS mount point\")\n\t\t\t}\n\t\t\treturn errors.Wrap(err, \"failed to read config\")","sourceCodeStart":73,"sourceCodeEnd":109,"githubUrl":"https://github.com/juicedata/juicefs/blob/c9a67b23e8e08ec23ec331aa6f1675e2319e921c/cmd/umount.go#L73-L109","documentation":"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.","triggerScenarios":"Running `juicefs umount` on a GOOS outside {linux, darwin, windows} — e.g. freebsd, openbsd, or android builds.","commonSituations":"Running a non-cgo or custom-built binary on BSD variants; cross-compiled binaries executed on unsupported platforms; CI containers on unusual platforms.","solutions":["Unmount manually with the platform tool: `umount <mp>` or `fusermount -u <mp>` on Linux-like systems.","Run JuiceFS on a supported OS (linux, darwin, windows).","If support is genuinely needed, add a case for the GOOS in cmd/umount.go's doUmount switch."],"exampleFix":null,"handlingStrategy":"fallback","validationCode":"if runtime.GOOS != \"linux\" && runtime.GOOS != \"darwin\" && runtime.GOOS != \"windows\" {\n    // use platform umount directly instead of juicefs umount\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Deploy JuiceFS only on linux, darwin, or windows","For unsupported platforms, script the native unmount command (umount/diskutil) directly"],"tags":["platform","umount","cli","unsupported"],"backgroundTag":"unsupported-platform","analyzedSha":"c9a67b23e8e08ec23ec331aa6f1675e2319e921c","analyzedAt":"2026-09-06T17:55:48.476Z","contentChangedAt":"2026-09-06T17:55:48.476Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}