thedotmack/claude-mem · critical · InstallAbortError

${ctx.component} failed during ${ctx.phase}: ${causeMessage(

Error message

${ctx.component} failed during ${ctx.phase}: ${causeMessage(ctx.cause)}

What it means

The message of InstallAbortError thrown by installerError() when severity is ABORT — the single, central abort path for the installer. It aggregates the failing component and phase (e.g. 'bun-install' / 'setup-runtime') with the underlying cause message, and attaches a remediation + category for the top-level handler to print. Any ABORT-severity failure anywhere in install flows surfaces here.

Source

Thrown at src/npx-cli/install/error-reporter.ts:123

 * The single decision point. ABORT throws InstallAbortError (the top-level
 * handler prints + exits 1). Every other severity records to the summary and
 * returns.
 */
export function installerError(
  severity: ErrorSeverity,
  ctx: ErrorContext,
  summary: InstallSummary,
): void {
  const dataDir = resolveDataDir();
  const category = classifyError(ctx.cause, { component: ctx.component, phase: ctx.phase });
  const remediation =
    ctx.remediation ??
    category.remediation({ platform: process.platform, dataDir });

  switch (severity) {
    case ErrorSeverity.ABORT: {
      writeLastInstallError(category, ctx, remediation, dataDir);
      throw new InstallAbortError(
        `${ctx.component} failed during ${ctx.phase}: ${causeMessage(ctx.cause)}`,
        { category, remediation, cause: ctx.cause },
      );
    }
    case ErrorSeverity.FAIL_LOUD_PER_IDE: {
      const ide = ctx.ide ?? ctx.component;
      if (!summary.failedIDEs.includes(ide)) summary.failedIDEs.push(ide);
      summary.warnings.push({
        component: ide,
        message: ctx.details ? `${causeMessage(ctx.cause)}\n${ctx.details}` : causeMessage(ctx.cause),
        remediation,
      });
      return;
    }
    case ErrorSeverity.WARN_CONTINUE: {
      summary.warnings.push({
        component: ctx.component,
        message: causeMessage(ctx.cause),

View on GitHub (pinned to d768ba3643)

Solutions

  1. Read the component/phase in the message to localize the failing step, then read ~/.claude-mem/last-install-error.json for the categorized remediation.
  2. Address the underlying cause (e.g. install bun/uv manually, free disk, fix permissions) per the remediation hint.
  3. Re-run the installer; if the same ABORT recurs, capture last-install-error.json and report it.
Defensive patterns

Strategy: try-catch

Type guard

function isInstallAbortError(e: unknown): e is Error {
  return e instanceof Error && /failed during/.test(e.message);
}

Try / catch

try {
  await runInstall();
} catch (e) {
  if (e instanceof InstallAbortError) {
    console.error(e.message);
    console.error('Remediation:', e.remediation);
    process.exit(1);
  }
  throw e;
}

Prevention

When it happens

Trigger: Any installerError(ErrorSeverity.ABORT, ...) call site: bun auto-install failure, uv auto-install failure (when vector search isn't opted out), bun/uv binary missing after install, or any component that calls installerError with ABORT. The error fires after writeLastInstallError persists diagnostics to ~/.claude-mem/last-install-error.json.

Common situations: Network-restricted environment where bun/uv can't be fetched. A partial install where the runtime binary isn't on PATH. Disk-full or permission errors during install. Any unrecoverable installer step.

Related errors


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