chenhg5/cc-connect · error

stop: %s (%w)

Error message

stop: %s (%w)

What it means

launchdManager.Stop tries bootout on every known launchd target (GUI, headless, per-label) and wraps the last failure with its output when none succeeded — the job could not be unloaded from any domain.

Source

Thrown at daemon/launchd.go:125

			return fmt.Errorf("start: %s (%w)", out, err)
		}
	}
	return nil
}

func (*launchdManager) Stop() error {
	var lastOut string
	var lastErr error
	for _, target := range launchdTargets() {
		out, err := runLaunchctl("bootout", target)
		if err == nil {
			return nil
		}
		lastOut = out
		lastErr = err
	}
	if lastErr != nil {
		return fmt.Errorf("stop: %s (%w)", lastOut, lastErr)
	}
	return nil
}

func (*launchdManager) Restart() error {
	domain := preferredLaunchdDomain()
	if loadedDomain, _, _, ok := loadedLaunchdTarget(); ok && domain != launchdGUIDomain() {
		domain = loadedDomain
	}
	target := launchdTarget(domain)
	bootoutLaunchdTargets()

	plistPath := launchdPlistPath()

	// launchd bootout is asynchronous; retry bootstrap with backoff
	// to avoid "Bootstrap failed: 5" race condition.
	var out string
	var err error

View on GitHub (pinned to 4000b2338a)

Solutions

  1. Use launchctl print on the target to see the job's state
  2. Check for a crash-looping job launchd refuses to bootout
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at daemon/launchd.go:125 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of chenhg5/cc-connect@4000b2338a (2026-09-06). Data as JSON: /api/errors/6a1ffdc3690e905e. Report an issue: GitHub.