-
Notifications
You must be signed in to change notification settings - Fork 0
Troubleshooting
This page lists the most common blumi problems and their fixes, grouped by area — installation,
the always-on gateway, the blugo mobile app, the grid, GPU/accelerators, self-healing, and build/CI.
blumi is a local-first, provider-agnostic AI coding agent that runs as one Rust binary on macOS and
Linux (with an Android app, blugo), so most issues come down to PATH, network reachability, or
host/accelerator configuration. Each entry below leads with the symptom in bold and the fix
immediately after.
TL;DR / first things to check:
-
blumi: command not found→ add~/.local/binto yourPATH. -
Gateway unreachable from your phone → you must install with
--host <LAN-ip>, not loopback, and share the same Wi-Fi. -
Non-loopback bind rejects clients → it needs a password; run
blumi serve pair. -
Grid peers don't appear → every node needs
grid.enabled: trueand the samegrid.secreton the same LAN. -
Which accelerator is active? → run
blumi accel doctor. -
Diagnostics to attach to any issue →
blumi --version, your OS, and the relevant~/.blumi/serve.loglines (redact secrets).
-
blumi: command not found—~/.local/binisn't onPATH. Addexport PATH="$HOME/.local/bin:$PATH"to your shell rc, or setBLUMI_INSTALL_DIR. -
Source build fails — install Rust (https://rustup.rs); the source path needs
cargo. -
No provider configured — run
blumi login. See Configuration.
-
serve statussays not running —blumi serve start; check~/.blumi/serve.log. -
Phone can't reach it — confirm you installed with
--host <LAN-ip>(not loopback) and that phone + machine share the same Wi-Fi. Test from another device:curl http://<ip>:7777/api/health. -
"password required" — a non-loopback bind must have a password. Run
blumi serve pair. -
Linux: service doesn't start before login —
loginctl enable-linger $USER. - macOS: "Unload failed" during install — harmless (it pre-unloads a non-existent agent).
-
Gateway not discovered — add it by IP (
host:port) instead; ensureserve statusis running and you're on the same LAN. (Android needs multicast permission, which the app declares.) -
Login fails — re-check the password from
blumi serve pair. - Stale view — pull-to-refresh on the chat; cached tabs revalidate automatically.
-
Voice key won't "stick" — keys are write-only; the app shows
saved ✓and never returns them. Re-enter the key to re-authenticate / reload the voice dropdown. See Voice.
-
Peers don't appear — every node needs
grid.enabled: trueand the samegrid.secret; all must be on the same LAN with mDNS allowed. Verify withGET /api/grid/peers. See Grid. -
A node vanished after changing the secret — its
grid_idchanged; restart all nodes with the same secret (identity is set at startup).
-
A Linux build froze / OOM'd the machine. Older builds release-linked the heavy ONNX embedder by
default. It's now Apple-default + opt-in elsewhere, so a plain Linux install is lean (FTS5) and
doesn't do that multi-GB native link. Only
BLUMI_CUDA=1/--features gpu-cudapulls it in. -
error while loading shared libraries: libonnxruntime.so(CUDA build). CUDA's ONNX Runtime is a shared lib; a plaincargo installcopies only the binary. The installer'sBLUMI_CUDA=1path ships the.sonext to the binary, verifiesblumi --versionloads, and auto-falls back to a lean build if it can't. Re-run the currentinstall.sh; if you don't need the in-process GPU embedder, use the lean build and run Ollama for GPU LLM + embeddings instead. -
CUDA build error: "When using
download-binaries, a TLS feature must be configured." A non---lockedresolve floatedort-systo a broken release. blumi pinsort-sys = =2.0.0-rc.9and the installer uses--lockedon the CUDA path — reinstall with the currentinstall.sh. -
Which accelerator is active?
blumi accel doctor(also/accelin the TUI, the Status tab in blugo). On Apple Silicon CoreML is on by default; elsewhere it's CPU unless you opted into CUDA. Settingacceleration.mode = "cuda"on a CPU build degrades to CPU with a warning. See Memory & Knowledge → GPU acceleration.
-
Turn it off.
heal.enabled = falsedisables recovery entirely;heal.evolve = "off"keeps recovery + learning but stops any self-modification. See Self-Management. -
Inspect it.
/healin the TUI orGET /api/healon the gateway shows recent recoveries, learned fixes, and evolution proposals. -
A fix didn't get reused. Learned fixes are
agent-namespace memories — recall + diffusion need the same prerequisites as any memory (embeddings or FTS5 fallback; grid up for cross-node sharing).
-
CI red on
cargo fmt— runcargo fmt --alland commit. -
Clippy passes locally but fails in CI — CI runs on Linux; macOS-only code must be
#[cfg(target_os = "macos")]-guarded or it tripsdead_codeunder-D warnings. -
A TUI test flakes — tests that set the process-global icon mode must be serialized
(a shared
Mutex), since cargo runs tests in parallel.
~/.local/bin isn't on your PATH. Add export PATH="$HOME/.local/bin:$PATH" to your shell rc (or
set BLUMI_INSTALL_DIR to a directory already on PATH), then open a new shell.
Almost always because the gateway is bound to loopback. Reinstall the gateway with --host <LAN-ip>
(not 127.0.0.1), confirm the phone and machine share the same Wi-Fi, and test from another device
with curl http://<ip>:7777/api/health. A non-loopback bind also requires a password — run
blumi serve pair.
Every node must have grid.enabled: true and the exact same grid.secret, all on the same LAN
with mDNS allowed. Verify with GET /api/grid/peers. If a node disappeared after you changed the
secret, its grid_id changed — restart all nodes with the same secret, since identity is fixed at
startup.
Run blumi accel doctor (also /accel in the TUI, or the Status tab in blugo). On Apple Silicon
CoreML is on by default; elsewhere it's CPU unless you opted into CUDA with BLUMI_CUDA=1. Setting
acceleration.mode = "cuda" on a CPU build degrades to CPU with a warning.
CUDA's ONNX Runtime is a shared library, and a plain cargo install copies only the binary.
Re-run the current install.sh: the BLUMI_CUDA=1 path ships the .so next to the binary, verifies
blumi --version loads, and auto-falls back to a lean build if it can't. If you don't need the
in-process GPU embedder, use the lean build and run Ollama for GPU LLM and embeddings instead.
Set heal.enabled = false to disable recovery entirely, or heal.evolve = "off" to keep recovery
and learning while stopping any self-modification. Inspect what it has done with /heal in the TUI
or GET /api/heal. See Self-Management.
Open an issue with blumi --version, your OS, and the relevant ~/.blumi/serve.log lines (redact
secrets). For accelerator problems, attach the output of blumi accel doctor.
Still stuck? Open an issue with blumi --version, your OS, and the relevant ~/.blumi/serve.log
lines (redact secrets).