multica-ai/multica · error

execenv: prepare qwenpaw workspace: %w

Error message

execenv: prepare qwenpaw workspace: %w

What it means

Error "execenv: prepare qwenpaw workspace: %w" thrown in multica-ai/multica.

Source

Thrown at server/internal/daemon/execenv/execenv.go:537

	// (service.LoadAgentSkillBundles), so a claimed task's AgentSkills is never
	// empty and the skill-less branch is effectively unreachable in production.
	// Emptying an agent's own skill list is NOT a way to opt out of the overlay.
	if params.Provider == "hermes" && len(params.Task.AgentSkills) > 0 {
		hermesHome := filepath.Join(envRoot, "hermes-home")
		sessions, err := prepareHermesHome(hermesHome, params.HermesSourceHome, params.HermesSourceMustExist, params.Task.AgentSkills, params.HermesEnv, params.HermesMemoryStore, params.HermesSessionStore, logger)
		if err != nil {
			return nil, fmt.Errorf("execenv: prepare hermes-home: %w", err)
		}
		env.HermesHome = hermesHome
		if sessions.Mounted {
			env.HermesSessionStore = params.HermesSessionStore
			env.HermesSessionHistoryPresent = sessions.HistoryPresent
		}
	}
	if params.Provider == "qwenpaw" {
		qwenpawWorkspace := filepath.Join(envRoot, "qwenpaw-workspace")
		if err := prepareQwenpawWorkspace(qwenpawWorkspace, params.Task.AgentSkills, logger); err != nil {
			return nil, fmt.Errorf("execenv: prepare qwenpaw workspace: %w", err)
		}
		env.QwenpawWorkspace = qwenpawWorkspace
	}

	// For Reasonix, deny the `ask` tool for this task through a project-scoped
	// reasonix.toml. Degraded, not fatal: without it the task still runs under
	// the backend's fail-closed question handling.
	if params.Provider == "reasonix" {
		if err := writeReasonixProjectConfig(workDir, params.ReasonixEnv, manifest, logger); err != nil {
			logger.Warn("execenv: write reasonix project config failed", "error", err)
		}
	}

	// For Cursor, materialize managed MCP into project-local config and use
	// an isolated CURSOR_DATA_DIR for the per-workdir approval sidecar. Cursor
	// still reads ~/.cursor/mcp.json, but only servers with approval entries in
	// this per-task data dir can load, so user-global MCP servers do not leak
	// into managed-MCP runs.

View on GitHub (pinned to 2c0912b6ec)

Solutions

  1. Inspect the wrapped error from qwenpaw workspace preparation.

When it happens

Trigger: Thrown at server/internal/daemon/execenv/execenv.go:537 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of multica-ai/multica@2c0912b6ec (2026-08-15). Data as JSON: /api/errors/643d933bf245b946. Report an issue: GitHub.