unslothai/unsloth · error · SttUnavailableError
llama.cpp is not installed, so these dictation models cannot
Error message
llama.cpp is not installed, so these dictation models cannot run. Run `unsloth studio update` to install it.
What it means
SttUnavailableError raised by ensure_engine_available() in the mtmd sidecar: find_llama_server_binary() (delegating to LlamaCppBackend._find_llama_server_binary) found no llama-server executable, so multimodal dictation models cannot run at all. Unlike transient engine errors, this is an installation gap — nothing is on disk to execute.
Source
Thrown at studio/backend/core/inference/stt_mtmd_sidecar.py:162
try:
import av # noqa: F401
except Exception:
# No PyAV means every transcription 501s on decode, so offering a
# multi-gigabyte download here would be a waste.
return False
return True
def _llama_server_child_env(binary: str) -> dict:
"""The chat backend's llama-server environment, for the same binary."""
from core.inference.llama_cpp import LlamaCppBackend
return LlamaCppBackend._llama_server_env_for_binary(binary)
def ensure_engine_available() -> str:
binary = find_llama_server_binary()
if not binary:
raise SttUnavailableError(
"llama.cpp is not installed, so these dictation models cannot run. "
"Run `unsloth studio update` to install it."
)
return binary
def _reap(process: Optional[subprocess.Popen]) -> None:
"""Stop a child and wait for it, so its port and VRAM are actually free.
terminate() alone returns before the process has gone, and a child that
ignores SIGTERM would hold both until Studio exits.
"""
if process is None:
return
try:
if process.poll() is None:
process.terminate()
try:View on GitHub (pinned to 203007d190)
Solutions
- Run `unsloth studio update` and let it install llama.cpp, then retry.
- Verify the managed install directory contains the llama-server binary and it is executable.
- If the update step fails, read its logs for the download/build failure (network, disk space, permissions) and fix that first.
Defensive patterns
Strategy: validation
Validate before calling
from core.inference.stt_mtmd_sidecar import find_llama_server_binary
if find_llama_server_binary() is None:
prompt_run_studio_update()
return Type guard
from core.inference.stt_mtmd_sidecar import find_llama_server_binary
def llama_cpp_ready() -> bool:
return find_llama_server_binary() is not None Try / catch
try:
sidecar.load(model_id)
except SttUnavailableError as exc:
if "not installed" in str(exc):
prompt_run_studio_update() # then retry after install Prevention
- Run `unsloth studio update` as part of environment provisioning.
- Check the managed install path exists and is executable before offering MTMD models in the UI.
- Disable MTMD model options until llama-server is present.
When it happens
Trigger: Calling any mtmd sidecar entry point (load/transcribe/ensure) on a machine where llama.cpp was never installed or its managed install is missing, because `unsloth studio update` was not run or its install step failed.
Common situations: Fresh environment without the Studio update step; partial update where the chat backend installed but llama-server was pruned; managed install directory deleted or on an unreadable path; PATH/shim issues after moving the install.
Related errors
- STT model '{model}' is not a curated llama.cpp dictation mod
- The local transcription runtime is not installed. Run `unslo
- The local transcription runtime is missing its paired ggml l
- '{model_id}' is still cancelling; try again in a moment.
- Another dictation model ('{self._model_id}') is still downlo
AI-assisted analysis of unslothai/unsloth@203007d190 (2026-08-15).
Data as JSON: /api/errors/2e1c53527ea6aca4.
Report an issue: GitHub.