multica-ai/multica · error

prepare reasonix state home: %w

Error message

prepare reasonix state home: %w

What it means

Error "prepare reasonix state home: %w" thrown in multica-ai/multica.

Source

Thrown at server/internal/daemon/daemon.go:6774

	// wrapper-out-of-envRoot $include into ~/.openclaw/openclaw.json is
	// rejected and the run boots with no user-registered agents.
	if rootsValue, ok := composeOpenclawIncludeRoots(env.OpenclawIncludeRoot, os.Getenv("OPENCLAW_INCLUDE_ROOTS")); ok {
		agentEnv["OPENCLAW_INCLUDE_ROOTS"] = rootsValue
	}
	// Inject user-configured custom environment variables (e.g. ANTHROPIC_API_KEY,
	// ANTHROPIC_BASE_URL for router/proxy mode, or CLAUDE_CODE_USE_BEDROCK for
	// Bedrock). These are set per-agent via the agent settings UI.
	// Critical internal variables are blocklisted to prevent accidental or
	// malicious override of daemon-set values.
	var agentCustomEnv map[string]string
	if task.Agent != nil {
		agentCustomEnv = task.Agent.CustomEnv
	}
	layerCustomEnvAndHermesHome(agentEnv, agentCustomEnv, env.HermesHome, d.logger)
	if provider == "reasonix" {
		reasonixStateHome, err := prepareReasonixTaskStateHome(d.cfg.Profile, task.RuntimeID, task.AgentID)
		if err != nil {
			return TaskResult{}, fmt.Errorf("prepare reasonix state home: %w", err)
		}
		agentEnv["REASONIX_STATE_HOME"] = reasonixStateHome
	}
	if provider == "dsh" {
		dshSessionRoot, err := prepareDshTaskSessionRoot(d.cfg.Profile, task.RuntimeID, task.AgentID)
		if err != nil {
			return TaskResult{}, fmt.Errorf("prepare dsh session root: %w", err)
		}
		agentEnv["MULTICA_DSH_SESSION_ROOT"] = dshSessionRoot
		agentEnv["DSH_TELEMETRY_DISABLED"] = "1"
	}
	if err := configureCodexTaskShellEnvironment(provider, env.CodexHome, os.Environ(), agentEnv, agentCustomEnv, d.logger); err != nil {
		return TaskResult{}, err
	}
	// Resolve the backend through the unified runtime resolver: built-in
	// runtime identities (e.g. "omp") dispatch through NewRuntime, protocol
	// families go through New. This is the single production boundary — the
	// daemon never calls agent.New or agent.NewRuntime directly, so the two

View on GitHub (pinned to 2c0912b6ec)

Solutions

  1. Check permissions for the reasonix state home directory.

When it happens

Trigger: Thrown at server/internal/daemon/daemon.go:6774 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/8a56b00b828c507d. Report an issue: GitHub.