tinyhumansai/openhuman · error

no runtime python server backends enabled

Error message

no runtime python server backends enabled

What it means

prepare_launch computed enabled_backends(config) and got an empty vec — every backend (spaCy, Kompress) is disabled by config, so there is nothing to spawn. Reached from a caller that asked for the server without enabling any backend.

Source

Thrown at src/openhuman/runtime/python_server/server.rs:384

    };
    match cached {
        ServerCache::Ready(server) => server.status().await,
        ServerCache::Failed { message, .. } => RuntimePythonServerStatus {
            enabled: true,
            running: false,
            backends: Vec::new(),
            message: Some(format!("runtime python server unavailable: {message}")),
        },
        ServerCache::Empty => {
            RuntimePythonServerStatus::disabled("runtime python server has not started")
        }
    }
}

async fn prepare_launch(config: &Config) -> Result<ServerLaunch> {
    let backends = enabled_backends(config);
    if backends.is_empty() {
        bail!("no runtime python server backends enabled");
    }

    let want_spacy = backends.contains(&RuntimePythonBackend::Spacy);
    let want_kompress = backends.contains(&RuntimePythonBackend::Kompress);

    // The server runs ONE interpreter, so the chosen venv must satisfy every
    // enabled backend. spaCy (if enabled) owns the venv; Kompress then installs
    // torch+transformers into it. If only Kompress is enabled it owns its venv.
    let mut env: Vec<(String, String)> = Vec::new();
    let python_bin = if want_spacy {
        let spacy_runtime = super::spacy::ensure_spacy(config).await?;
        if want_kompress {
            let hf = super::kompress::install_into(config, &spacy_runtime.python_bin).await?;
            push_kompress_env(&mut env, config, &hf);
        }
        spacy_runtime.python_bin
    } else if want_kompress {
        let rt = super::kompress::ensure_kompress(config).await?;

View on GitHub (pinned to 7491200858)

Solutions

  1. Enable at least one backend (runtime_python for spaCy, tokenjuice.ml_compression_enabled for Kompress)
  2. Do not call the python server surface when all backends are off
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at src/openhuman/runtime/python_server/server.rs:384 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of tinyhumansai/openhuman@7491200858 (2026-08-17). Data as JSON: /api/errors/58e6691a76aaf5bb. Report an issue: GitHub.