thedotmack/claude-mem · error

Worker already running

Error message

Worker already running

What it means

Error "Worker already running" thrown in thedotmack/claude-mem.

Source

Thrown at src/supervisor/index.ts:41

class Supervisor {
  private readonly registry: ProcessRegistry;
  private started = false;
  private stopPromise: Promise<void> | null = null;
  private signalHandlersRegistered = false;
  private shutdownInitiated = false;
  private shutdownHandler: (() => Promise<void>) | null = null;

  constructor(registry: ProcessRegistry) {
    this.registry = registry;
  }

  async start(): Promise<void> {
    if (this.started) return;

    this.registry.initialize();
    const pidStatus = validateWorkerPidFile({ logAlive: false });
    if (pidStatus === 'alive') {
      throw new Error('Worker already running');
    }

    this.started = true;

    startHealthChecker();
  }

  configureSignalHandlers(shutdownHandler: () => Promise<void>): void {
    this.shutdownHandler = shutdownHandler;

    if (this.signalHandlersRegistered) return;
    this.signalHandlersRegistered = true;

    const handleSignal = async (signal: string): Promise<void> => {
      if (this.shutdownInitiated) {
        logger.warn('SYSTEM', `Received ${signal} but shutdown already in progress`);
        return;
      }

View on GitHub (pinned to d768ba3643)

Solutions

  1. Stop the existing worker before starting a new one (`npx claude-mem stop` or `worker-service stop`), or use `restart`.
  2. Check for a stale PID file: if the recorded PID is dead, remove the stale pid file and start again.

When it happens

Trigger: Fires when starting the worker while a supervisor instance is already active: a second `claude-mem` start, a stale process from a previous terminal session, or a double-invoked installer/launcher. Defensive guard in src/supervisor/index.ts:41 prevents two supervisors from competing for the same SQLite database, worker port, and Chroma writer lock.

Common situations: See trigger scenarios.


AI-assisted analysis of thedotmack/claude-mem@d768ba3643 (2026-08-12). Data as JSON: /api/errors/9cdb8695d8eaf87a. Report an issue: GitHub.