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

  1. Check the juicefs log file (the --log path registered in the service's Stderr value) for the actual startup failure.
  2. Verify the metadata engine is reachable from the machine (network, credentials, firewall) before mounting.
  3. Check the mountpoint/drive letter is not held by a stale mount; clean it up and remount.
  4. 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

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


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