multica-ai/multica · error
resolve hermes profile: %w
Error message
resolve hermes profile: %w
What it means
Error "resolve hermes profile: %w" thrown in multica-ai/multica.
Source
Thrown at server/internal/daemon/daemon.go:6329
// the agent's custom_env HERMES_HOME feed execenv.ResolveHermesProfile, which
// reproduces Hermes' own profile semantics (root derivation, explicit vs.
// sticky selection, reserved/invalid failure). A reserved/invalid selection
// fails the task closed, matching Hermes' sys.exit(1). The selected source
// home is exported to hermesEnv["HERMES_HOME"] so ${HERMES_HOME} in a
// profile's skills.external_dirs expands against the selected profile home,
// as native Hermes does before loading config.yaml. The parsed occurrence is
// stripped from the acp argv at launch (only when the overlay is built) so
// the flag can't re-point HERMES_HOME past the overlay.
var hermesSourceHome string
var hermesSourceMustExist bool
var hermesEnv map[string]string
var hermesMemoryStore string
var hermesSessionStore string
if provider == "hermes" {
sel := agent.ParseHermesProfileArgs(agentCustomArgs)
res := execenv.ResolveHermesProfile(agentEnvOverrides["HERMES_HOME"], sel.Name, sel.Found, sel.Inline)
if res.Err != nil {
return TaskResult{}, fmt.Errorf("resolve hermes profile: %w", res.Err)
}
hermesSourceHome = res.SourceHome
hermesSourceMustExist = res.MustExist
// Which home the overlay is seeded from decides whether the task sees
// the user's provider config at all, and it is derived from the daemon
// PROCESS environment — invisible from the shell the user tests
// `hermes acp` in, which is why a mismatch reads as "works by hand,
// fails under Multica" (GH #6872). One line, at Info, so the answer is
// in the daemon log before anything fails rather than reconstructed
// afterwards.
taskLog.Info("hermes home resolved",
"source_home", hermesSourceHome,
"from_custom_env", strings.TrimSpace(agentEnvOverrides["HERMES_HOME"]) != "",
"must_exist", hermesSourceMustExist,
)
hermesEnv = sanitizeAgentEnv(agentEnvOverrides)
if hermesEnv == nil {
hermesEnv = map[string]string{}View on GitHub (pinned to 2c0912b6ec)
Solutions
- Fix the hermes profile configuration and retry.
When it happens
Trigger: Thrown at server/internal/daemon/daemon.go:6329 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/f24a7979f594393c.
Report an issue: GitHub.