chenhg5/cc-connect · error
claudecode: cannot determine home dir: %w
Error message
claudecode: cannot determine home dir: %w
What it means
Wraps a failed os.UserHomeDir() inside claudecode Agent.ListSessions. Claude Code stores project session files under ~/.claude/projects/...; without a home directory the storage path cannot be built, so listing aborts.
Source
Thrown at agent/claudecode/claudecode.go:562
platformPrompt := a.platformPrompt
systemPrompt := a.systemPrompt
appendSystemPrompt := a.appendSystemPrompt
// Issue #1655: agent-level language drives the localized cc-connect system
// prompt. Read under the mutex and pass through to newClaudeSession so the
// session picks up the right tool-prompt bundle at spawn time.
lang := a.lang
// When router_url is set, --verbose conflicts with --output-format stream-json
// (verbose emits non-JSON text to stdout that corrupts the JSON stream).
disableVerbose := a.routerURL != ""
a.mu.Unlock()
return newClaudeSession(ctx, workDir, a.cmd, a.cliExtraArgs, a.cmdArgsFlag, model, effort, sessionID, mode, systemPrompt, appendSystemPrompt, tools, disTools, pluginDirs, extraEnv, platformPrompt, disableVerbose, a.spawnOpts, maxTok, a.ccDataDir, lang)
}
func (a *Agent) ListSessions(ctx context.Context) ([]core.AgentSessionInfo, error) {
homeDir, err := os.UserHomeDir()
if err != nil {
return nil, fmt.Errorf("claudecode: cannot determine home dir: %w", err)
}
a.mu.RLock()
workDir := a.workDir
a.mu.RUnlock()
absWorkDir, err := filepath.Abs(workDir)
if err != nil {
return nil, fmt.Errorf("claudecode: resolve work_dir: %w", err)
}
projectDir := findProjectDir(homeDir, absWorkDir)
if projectDir == "" {
return nil, nil
}
entries, err := os.ReadDir(projectDir)
if err != nil {
if os.IsNotExist(err) {View on GitHub (pinned to 4000b2338a)
Solutions
- Set HOME in the cc-connect daemon environment
- Verify the user running cc-connect exists with a valid home
- Retry /sessions after fixing the environment
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at agent/claudecode/claudecode.go:562 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/295fa36cd8ec347b.
Report an issue: GitHub.