thedotmack/claude-mem · warning
claude-mem: uv --version probe failed:
Error message
claude-mem: uv --version probe failed:
What it means
getUvVersion probes the uv tool by spawning `uv --version` and returns null when the probe throws. The warning tells you the uv binary could not be spawned at the resolved path, so uv-dependent steps (Chroma runtime) will be treated as unavailable.
Solutions
- Install uv (curl -LsSf https://astral.sh/uv/install.sh | sh) and ensure its bin dir is on PATH
- Run `uv --version` manually to confirm it resolves in the target environment
- Provide the correct uv path if it lives outside the common paths this code checks
- Fix permissions on the uv binary if EACCES
Example fix
// before
const result = spawnVersionProbe(uvPath, ['--version']);
// after
if (!uvPath) {
console.warn('claude-mem: uv not found on PATH');
return null;
}
const result = spawnVersionProbe(uvPath, ['--version']); Defensive patterns
Strategy: fallback
Validate before calling
const probe = spawnSync('uv', ['--version']);
if (probe.error || probe.status !== 0) console.warn('uv unavailable; install it for Chroma support'); Type guard
function hasUv(): boolean {
try { return spawnVersionProbe(uvPath, ['--version']).status === 0; } catch { return false; }
} Try / catch
try {
const v = getUvVersion();
if (v === null) throw new Error('uv version unavailable');
} catch (e) {
// install uv or disable uv-dependent features
} Prevention
- Install uv as part of environment bootstrap
- Check `uv --version` in the exact environment that runs the installer
- Avoid relying on venv-local uv binaries for system-wide tools
When it happens
Trigger: spawnVersionProbe(uvPath, ['--version']) throws: uv not on PATH or at any of the common uv paths, binary not executable, or spawn fails due to environment restrictions.
Common situations: uv never installed; uv installed via pip/cargo into a venv not on PATH; PATH differs between interactive shell and the process invoking this code; permission issues on the binary.
Related errors
- claude-mem: bun --version probe failed:
- [doctor] Failed to probe \
- Bun installation completed but binary not found. Please…
- CLAUDE_CODE_PATH is set to
- Could not determine Codex CLI version. Continuing; plugin…
AI-assisted analysis of thedotmack/claude-mem@d8bc9755e7 (2026-09-17).
Data as JSON: /api/errors/7d935cf7545a31da.
Report an issue: GitHub.
Appendix: source
Thrown at src/npx-cli/install/setup-runtime.ts:165
function getUvPath(): string | null {
return getToolPath('uv', uvCommonPaths());
}
function isUvInstalled(): boolean {
return getUvPath() !== null;
}
export function getUvVersion(): string | null {
const uvPath = getUvPath();
if (!uvPath) return null;
try {
const result = spawnVersionProbe(uvPath, ['--version']);
return result.status === 0 ? result.stdout.trim() : null;
} catch (error) {
const err = error instanceof Error ? error : new Error(String(error));
console.warn('claude-mem: uv --version probe failed:', err);
return null;
}
}
function describeExecError(error: unknown): string {
if (error && typeof error === 'object') {
const e = error as { message?: string; stdout?: Buffer | string; stderr?: Buffer | string };
const parts: string[] = [];
if (e.message) parts.push(e.message);
const stderr = e.stderr ? e.stderr.toString().trim() : '';
if (stderr) parts.push(`stderr: ${stderr}`);
const stdout = e.stdout ? e.stdout.toString().trim() : '';
if (!stderr && stdout) parts.push(`stdout: ${stdout}`);
return parts.join('\n');
}
return String(error);
}
View on GitHub (pinned to d8bc9755e7)