chenhg5/cc-connect · error

work_dir %q is not a directory

Error message

work_dir %q is not a directory

What it means

resolveSendWorkDir found that the requested work_dir path exists but is a regular file or other non-directory entry. It is an explicit guard rejecting a work_dir parameter pointing at something other than a directory.

Source

Thrown at core/engine.go:11451

		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. Point work_dir at a directory, not a file
  2. Remove/rename the offending file if a directory was intended
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at core/engine.go:11451 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/5c748a3df28e1213. Report an issue: GitHub.