multica-ai/multica · error
find process %d: %w
Error message
find process %d: %w
What it means
Error "find process %d: %w" thrown in multica-ai/multica.
Source
Thrown at server/cmd/multica/cmd_daemon.go:1291
label = fmt.Sprintf("Daemon [%s]", profile)
}
fmt.Fprintf(os.Stderr, "%s is not running.\n", label)
return nil
}
// The PID to kill comes from whatever answered on this port, so verify it
// is ours before signalling it.
if err := daemonIdentityMismatch(health, profile, healthPort); err != nil {
return err
}
pid, ok := health["pid"].(float64)
if !ok || pid == 0 {
return fmt.Errorf("could not determine daemon PID from health endpoint")
}
process, err := os.FindProcess(int(pid))
if err != nil {
return fmt.Errorf("find process %d: %w", int(pid), err)
}
// Request graceful shutdown via the daemon's HTTP /shutdown endpoint
// rather than an OS signal. On Windows the daemon is spawned with
// DETACHED_PROCESS so it shares no console with us, which means
// GenerateConsoleCtrlEvent can't reach it; HTTP works on both
// platforms and triggers the same context-cancel path the daemon
// already uses for self-restart.
if err := requestDaemonShutdown(healthPort); err != nil {
fmt.Fprintf(os.Stderr, "Graceful shutdown request failed: %v — falling back to forced kill.\n", err)
if kerr := process.Kill(); kerr != nil {
return fmt.Errorf("kill daemon (pid %d): %w", int(pid), kerr)
}
}
fmt.Fprintf(os.Stderr, "Stopping daemon (pid %d)...\n", int(pid))
// Poll health endpoint until daemon is gone.View on GitHub (pinned to 2c0912b6ec)
Solutions
- Verify the daemon process still exists.
When it happens
Trigger: Thrown at server/cmd/multica/cmd_daemon.go:1291 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/3974d6e64ae2aa80.
Report an issue: GitHub.