chenhg5/cc-connect · error

resolve home directory: %w

Error message

resolve home directory: %w

What it means

normalizeSendWorkDir wraps os.UserHomeDir failure while expanding a '~'-prefixed work_dir (home directory undeterminable, e.g. HOME unset for the daemon user). The path cannot be resolved, so the send is refused.

Source

Thrown at core/engine.go:11487

	}
	if strings.TrimSpace(e.baseWorkDir) != "" {
		return strings.TrimSpace(e.baseWorkDir)
	}
	if cwd, err := os.Getwd(); err == nil {
		return cwd
	}
	return ""
}

func normalizeSendWorkDir(workDir, base string) (string, error) {
	dir := strings.TrimSpace(workDir)
	if dir == "" {
		return "", fmt.Errorf("work_dir is required")
	}
	if dir == "~" || strings.HasPrefix(dir, "~/") {
		home, err := os.UserHomeDir()
		if err != nil {
			return "", fmt.Errorf("resolve home directory: %w", err)
		}
		if dir == "~" {
			dir = home
		} else {
			dir = filepath.Join(home, strings.TrimPrefix(dir, "~/"))
		}
	}
	if !filepath.IsAbs(dir) {
		if strings.TrimSpace(base) == "" {
			var err error
			base, err = os.Getwd()
			if err != nil {
				return "", fmt.Errorf("resolve current directory: %w", err)
			}
		}
		dir = filepath.Join(base, dir)
	}
	abs, err := filepath.Abs(filepath.Clean(dir))

View on GitHub (pinned to 4000b2338a)

Solutions

  1. Set $HOME properly for the daemon process
  2. Use an absolute path instead of ~/ in work_dir
Defensive patterns

Strategy: fallback

When it happens

Trigger: Thrown at core/engine.go:11487 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/459cab3125ac3389. Report an issue: GitHub.