chenhg5/cc-connect · error
remove plist: %w
Error message
remove plist: %w
What it means
launchd Uninstall wraps os.Remove failure on the plist when the error is not 'not exists' (typically permission denied). A missing plist is tolerated by design; other removal failures abort the uninstall.
Source
Thrown at daemon/launchd.go:86
}
domain := preferredLaunchdDomain()
if out, err := runLaunchctl("bootstrap", domain, plistPath); err != nil {
return fmt.Errorf("launchctl bootstrap: %s (%w)", out, err)
}
if _, err := runLaunchctl("kickstart", "-kp", launchdTarget(domain)); err != nil {
return fmt.Errorf("launchctl kickstart: %w", err)
}
return nil
}
func (m *launchdManager) Uninstall() error {
bootoutLaunchdTargets()
plistPath := launchdPlistPath()
if err := os.Remove(plistPath); err != nil && !os.IsNotExist(err) {
return fmt.Errorf("remove plist: %w", err)
}
return nil
}
func (*launchdManager) Start() error {
if _, target, _, ok := loadedLaunchdTarget(); ok {
out, err := runLaunchctl("kickstart", "-kp", target)
if err != nil {
return fmt.Errorf("start: %s (%w)", out, err)
}
return nil
}
domain := preferredLaunchdDomain()
plistPath := launchdPlistPath()
var out string
if _, err := runLaunchctl("bootstrap", domain, plistPath); err != nil {
// already bootstrapped — try kickstartView on GitHub (pinned to 4000b2338a)
Solutions
- Check file ownership of the plist in ~/Library/LaunchAgents
- Bootout the job before removing if launchd holds it open
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at daemon/launchd.go:86 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/3a060076480127f5.
Report an issue: GitHub.