juicedata/juicefs · error
Mount command succeeded, but the mountpoint %s did not becom
Error message
Mount command succeeded, but the mountpoint %s did not become ready in %d seconds, please check the juicefs logs for more information.
What it means
Thrown when the launchctl start command succeeded but the mountpoint did not become ready within the 25-second readiness window (checkIfMountProcessReady polling failed). The service was launched, but the actual juicefs mount process either crashed, is still initializing (e.g. slow metadata connection), or is failing silently. The message directs the user to the juicefs logs.
Source
Thrown at pkg/winfsp/winfs.go:1472
winfspLauncher := "launchctl-x64.exe"
logger.Debugf("WinFsp Bin Path: %s", winFspBinPath)
if winFspBinPath != "" {
winfspLauncher = filepath.Join(winFspBinPath, winfspLauncher)
}
// the second param of start subcommand must be the same as the third param
// or the Explorer will not be able to disconnect the volume.
cmd := exec.Command(winfspLauncher, "start", winfspServiceName, alias, alias, mountpoint)
cmd.Dir = winFspBinPath
logger.Debugf("Mounting command(using launchctl): %s", cmd.String())
out, err := cmd.CombinedOutput()
if err != nil {
return fmt.Errorf("Failed to mount juicefs as system service: %s, output: %s", err, string(out))
}
if !checkIfMountProcessReady(mountpoint, 25) {
return fmt.Errorf("Mount command succeeded, but the mountpoint %s did not become ready in %d seconds, please check the juicefs logs for more information.", mountpoint, 25)
}
} else {
logger.Debugf("Trying to start juicefs service by 'net use' command.")
cmd := exec.Command("net", "use", mountpoint, fmt.Sprintf("\\\\%s\\%s", winfspServiceName, alias), "/Y")
out, err := cmd.CombinedOutput()
if err != nil {
return fmt.Errorf("Failed to start juicefs service by 'net use': %s, output: %s", err, string(out))
}
}
logger.Info("Juicefs mount process started successfully.")
return nil
}
View on GitHub (pinned to c9a67b23e8)
Solutions
- Check the juicefs log file (the --log path registered in the service's Stderr value) for the actual startup failure.
- Verify the metadata engine is reachable from the machine (network, credentials, firewall) before mounting.
- Check the mountpoint/drive letter is not held by a stale mount; clean it up and remount.
- If startup is legitimately slow, retry the mount; investigate why it exceeds 25 s (DNS, TLS, cold caches).
Example fix
// before > juicefs mount redis://slow-host:6379 X: // not ready in 25s // after: verify metadata first > redis-cli -h slow-host ping > juicefs status redis://slow-host:6379 > juicefs mount redis://slow-host:6379 X:
Defensive patterns
Strategy: retry
Validate before calling
// precheck metadata connectivity before mounting
conn, err := net.DialTimeout("tcp", "meta-host:6379", 5*time.Second)
if err != nil { return fmt.Errorf("metadata unreachable: %w", err) }
conn.Close() Try / catch
if err := mount(...); strings.Contains(err.Error(), "did not become ready in") {
// inspect juicefs --log output; fix metadata/network; retry with more headroom
} Prevention
- Verify the metadata engine is reachable and credentials are correct before mounting
- Check the service's registered Stderr log for startup errors
- Clear stale mounts occupying the target drive letter
- Allow extra startup time on slow/cold networks and investigate consistently slow starts
When it happens
Trigger: checkIfMountProcessReady(mountpoint, 25) returns false after launchctl-x64.exe start — metadata engine unreachable, wrong credentials/URL, mountpoint busy, the launched service crashed on startup, or startup simply took longer than 25 s.
Common situations: Unreachable/slow Redis or SQL metadata server; wrong metadata password; firewall blocking the metadata port; slow cold start under heavy load; service running as LocalSystem lacking access to config/cert files; mountpoint already occupied by a stale mount.
Understand the failure class
Background: Request timed out: what client-side request timeouts mean across libraries (Request timed out, TIMED_OUT, APITimeoutError) — this error's family across 39 libraries.
Related errors
- Cannot mount to a local directory when --as-local-volume is
- Mount point %s cannot be an existing folder
- Parent directory %s of mount point %s does not exist
- juicefs mount command exit with error, please check the log
- cannot find the mount process for %s
AI-assisted analysis of juicedata/juicefs@c9a67b23e8 (2026-09-06).
Data as JSON: /api/errors/eba92164808593a4.
Report an issue: GitHub.