chenhg5/cc-connect · error

work_dir %q: %w

Error message

work_dir %q: %w

What it means

resolveSendWorkDir wrapped os.Stat failure for the resolved work_dir target: the directory does not exist or is inaccessible (permissions, bad mount). Fires when a send/send-to-session request specifies a work_dir that cannot be stat'ed after path normalization.

Source

Thrown at core/engine.go:11448

	}

	return sendTarget{
		state:      state,
		platform:   p,
		replyCtx:   replyCtx,
		sessionKey: resolvedSessionKey,
	}, nil
}

func (e *Engine) resolveSendWorkDir(workDir string) (string, bool, error) {
	current := e.currentSendWorkDir()
	target, err := normalizeSendWorkDir(workDir, current)
	if err != nil {
		return "", false, err
	}
	info, err := os.Stat(target)
	if err != nil {
		return "", false, fmt.Errorf("work_dir %q: %w", target, err)
	}
	if !info.IsDir() {
		return "", false, fmt.Errorf("work_dir %q is not a directory", target)
	}

	if current != "" {
		if normalizedCurrent, err := normalizeSendWorkDir(current, ""); err == nil && normalizedCurrent == target {
			return target, false, nil
		}
	}
	return target, true, nil
}

func (e *Engine) currentSendWorkDir() string {
	if e.agent != nil {
		if wd, ok := e.agent.(interface{ GetWorkDir() string }); ok {
			if dir := strings.TrimSpace(wd.GetWorkDir()); dir != "" {
				return dir

View on GitHub (pinned to 4000b2338a)

Solutions

  1. Create the directory first (mkdir -p)
  2. Check spelling and permissions of the configured work_dir
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at core/engine.go:11448 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/8c6ff05740285001. Report an issue: GitHub.