multica-ai/multica · error
execenv: prepare codex-home: %w
Error message
execenv: prepare codex-home: %w
What it means
Error "execenv: prepare codex-home: %w" thrown in multica-ai/multica.
Source
Thrown at server/internal/daemon/execenv/execenv.go:494
// managed (non-local_directory) issue envs get this marker; that is exactly
// the set squad-leader reuse targets (MUL-4886). Non-fatal: a write failure
// only costs the next follow-up its session reuse (it falls back to a fresh
// session), which must never block dispatching this task.
if params.LocalWorkDir == "" && params.Task.IssueID != "" {
if err := WriteManagedEnvProvenance(envRoot, ManagedEnvProvenance{
WorkspaceID: params.WorkspaceID,
IssueID: params.Task.IssueID,
AgentID: params.Task.AgentID,
}); err != nil && logger != nil {
logger.Warn("execenv: write managed env provenance failed (non-fatal); a follow-up may start a fresh session", "error", err)
}
}
// For Codex, set up a per-task CODEX_HOME seeded from ~/.codex/ with skills.
if params.Provider == "codex" {
codexHome := filepath.Join(envRoot, codexHomeDirName)
if err := prepareCodexHomeWithOpts(codexHome, CodexHomeOptions{CodexVersion: params.CodexVersion, IsLocalDirectory: params.LocalWorkDir != "" || params.LocalWorktree != nil, SessionStoreKey: codexSessionStoreKey(params.Profile, params.Task), CodexCustomArgs: params.CodexCustomArgs}, logger); err != nil {
return nil, fmt.Errorf("execenv: prepare codex-home: %w", err)
}
if err := hydrateCodexSkills(codexHome, params.Task.AgentSkills, params.Task.DisabledRuntimeSkills, logger); err != nil {
return nil, fmt.Errorf("execenv: hydrate codex skills: %w", err)
}
env.CodexHome = codexHome
}
if params.Provider == "claude" {
settingsPath, err := prepareClaudeSkillSettings(envRoot, params.Task.DisabledRuntimeSkills, params.Task.AgentSkills)
if err != nil {
return nil, fmt.Errorf("execenv: prepare claude skill settings: %w", err)
}
env.ClaudeSettingsPath = settingsPath
}
// For Hermes, redirect HERMES_HOME to a per-task compatibility overlay ONLY
// when the agent has skills bound. A skill-less Hermes task keeps the user's
// real home and its original behavior untouched. The overlay makes the boundView on GitHub (pinned to 2c0912b6ec)
Solutions
- Inspect the wrapped error from codex-home preparation.
When it happens
Trigger: Thrown at server/internal/daemon/execenv/execenv.go:494 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/52170a1314f12a4b.
Report an issue: GitHub.