{"record":{"id":"ec03fb4b53924846","repo":"thedotmack/claude-mem","slug":"failed-to-install-uv-please-install-manually-m","errorCode":null,"errorMessage":"Failed to install uv. Please install manually:\n${manualInstructions}\nThen restart your terminal and try again.\nUnderlying error: ${describeExecError(err)}","messagePattern":"Failed to install uv\\. Please install manually:\n(.+?)\nThen restart your terminal and try again\\.\nUnderlying error: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/npx-cli/install/setup-runtime.ts","lineNumber":228,"sourceCode":"    });\n  }\n\n  if (!isUvInstalled()) {\n    throw new Error(\n      'uv installation completed but binary not found. Please restart your terminal and try again.',\n    );\n  }\n}\n\nfunction installUv(): void {\n  try {\n    runUvInstaller();\n  } catch (error) {\n    const err = error instanceof Error ? error : new Error(String(error));\n    const manualInstructions = IS_WINDOWS\n      ? '  - winget install astral-sh.uv\\n  - Or: powershell -c \"irm https://astral.sh/uv/install.ps1 | iex\"'\n      : '  - curl -LsSf https://astral.sh/uv/install.sh | sh\\n  - Or: brew install uv (macOS)';\n    throw new Error(\n      `Failed to install uv. Please install manually:\\n${manualInstructions}\\nThen restart your terminal and try again.\\n` +\n        `Underlying error: ${describeExecError(err)}`,\n    );\n  }\n}\n\n/**\n * Subpath imports the bundled worker requires transitively (via\n * @modelcontextprotocol/sdk / @anthropic-ai/claude-agent-sdk). A stale/partial\n * install can leave the `zod` directory present while these subpath exports fail\n * to resolve — surfacing later as a runtime `Cannot find module 'zod/v3'`. We\n * assert them at install time so a broken closure fails LOUD here. Version-agnostic:\n * we resolve subpaths, never a pinned version.\n */\nconst ZOD_REQUIRED_SUBPATHS = ['zod/v3', 'zod/v4', 'zod/v4-mini'] as const;\n\nexport function verifyCriticalModules(targetDir: string): void {\n  const pkg = JSON.parse(readFileSync(join(targetDir, 'package.json'), 'utf-8'));","sourceCodeStart":210,"sourceCodeEnd":246,"githubUrl":"https://github.com/thedotmack/claude-mem/blob/d768ba364302d12b76e69e4f021f0bb1d2d50ed6/src/npx-cli/install/setup-runtime.ts#L210-L246","documentation":"Thrown by installUv() when runUvInstaller() throws — the uv installer script failed (network, timeout, non-zero exit) or the post-install binary check failed (error 36). It wraps the underlying error with platform-specific manual uv install instructions and the describeExecError() dump. Symmetric to error 35 for uv. When the user has opted out of vector search, this path is bypassed and a WARN_CONTINUE is recorded instead.","triggerScenarios":"curl cannot reach astral.sh (offline/proxy/firewall). The uv install script exits non-zero. INSTALL_TIMEOUT_MS exceeded. /bin/sh unavailable for the pipe. Post-install isUvInstalled() fails (error 36) and propagates here. Corporate proxy rewriting the script.","commonSituations":"Air-gapped CI. Slow networks hitting the install timeout. Proxy environments that block astral.sh. Locked-down Windows shells.","solutions":["Follow the manual instructions in the error: install uv via winget/brew/curl/pip into a PATH dir, then re-run.","Configure HTTP(S)_PROXY for the install if network is filtered.","If the 'Underlying error' shows a timeout, retry on a faster connection or raise INSTALL_TIMEOUT_MS.","If you do not need vector search, enable the vector-search opt-out so uv becomes optional and this ABORT is avoided."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"try {\n  installUv();\n} catch (e) {\n  if (e instanceof Error && /Failed to install uv/.test(e.message)) {\n    if (userHasOptedOutOfVectorSearch()) { /* continue without uv */ }\n    else { /* prompt manual install */ }\n  }\n  throw e;\n}","preventionTips":["Pre-install uv (winget/brew/pip) on PATH in restricted networks.","Configure HTTP(S)_PROXY for astral.sh reachability.","Opt out of vector search in environments where uv cannot be installed."],"tags":["install","uv","runtime","network","python"],"backgroundTag":null,"analyzedSha":"d768ba364302d12b76e69e4f021f0bb1d2d50ed6","analyzedAt":"2026-08-12T23:52:55.241Z","schemaVersion":2},"datasetVersion":"2026-08-13T04:17:16.726Z"}