chenhg5/cc-connect · error
chmod plist: %w
Error message
chmod plist: %w
What it means
launchd Install wraps os.Chmod failure when hardening the launchd plist to 0600. WriteFile's perm only applies on create, so Chmod is required to tighten plists that pre-existed at 0644 and may contain captured secrets.
Source
Thrown at daemon/launchd.go:67
return fmt.Errorf("create log dir: %w", err)
}
// Unload existing service first (ignore errors) so we do not leave a stale
// job behind when switching between GUI and headless sessions.
bootoutLaunchdTargets()
plist := buildPlist(cfg)
// 0600: plist may contain captured secret values (config.toml ${ENV}
// placeholders and any EnvDiscoverer extension output). User-only
// LaunchAgents path; root can still read but that is the user's own
// machine boundary. os.WriteFile only applies perm on create, so
// Chmod afterwards is required to harden reinstalls of files that
// pre-existed at 0644 from earlier cc-connect versions.
if err := os.WriteFile(plistPath, []byte(plist), 0600); err != nil {
return fmt.Errorf("write plist: %w", err)
}
if err := os.Chmod(plistPath, 0600); err != nil {
return fmt.Errorf("chmod plist: %w", err)
}
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) {View on GitHub (pinned to 4000b2338a)
Solutions
- Check ownership/permissions of ~/Library/LaunchAgents and the plist file
- Remove the stale plist and reinstall the service
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at daemon/launchd.go:67 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/e79b9196999656a9.
Report an issue: GitHub.