{"record":{"id":"58e6691a76aaf5bb","repo":"tinyhumansai/openhuman","slug":"no-runtime-python-server-backends-enabled","errorCode":null,"errorMessage":"no runtime python server backends enabled","messagePattern":"no runtime python server backends enabled","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/openhuman/runtime/python_server/server.rs","lineNumber":384,"sourceCode":"    };\n    match cached {\n        ServerCache::Ready(server) => server.status().await,\n        ServerCache::Failed { message, .. } => RuntimePythonServerStatus {\n            enabled: true,\n            running: false,\n            backends: Vec::new(),\n            message: Some(format!(\"runtime python server unavailable: {message}\")),\n        },\n        ServerCache::Empty => {\n            RuntimePythonServerStatus::disabled(\"runtime python server has not started\")\n        }\n    }\n}\n\nasync fn prepare_launch(config: &Config) -> Result<ServerLaunch> {\n    let backends = enabled_backends(config);\n    if backends.is_empty() {\n        bail!(\"no runtime python server backends enabled\");\n    }\n\n    let want_spacy = backends.contains(&RuntimePythonBackend::Spacy);\n    let want_kompress = backends.contains(&RuntimePythonBackend::Kompress);\n\n    // The server runs ONE interpreter, so the chosen venv must satisfy every\n    // enabled backend. spaCy (if enabled) owns the venv; Kompress then installs\n    // torch+transformers into it. If only Kompress is enabled it owns its venv.\n    let mut env: Vec<(String, String)> = Vec::new();\n    let python_bin = if want_spacy {\n        let spacy_runtime = super::spacy::ensure_spacy(config).await?;\n        if want_kompress {\n            let hf = super::kompress::install_into(config, &spacy_runtime.python_bin).await?;\n            push_kompress_env(&mut env, config, &hf);\n        }\n        spacy_runtime.python_bin\n    } else if want_kompress {\n        let rt = super::kompress::ensure_kompress(config).await?;","sourceCodeStart":366,"sourceCodeEnd":402,"githubUrl":"https://github.com/tinyhumansai/openhuman/blob/749120085864ce16e0f273c7b86fac7740b39c5b/src/openhuman/runtime/python_server/server.rs#L366-L402","documentation":"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.","triggerScenarios":"Thrown at src/openhuman/runtime/python_server/server.rs:384 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Enable at least one backend (runtime_python for spaCy, tokenjuice.ml_compression_enabled for Kompress)","Do not call the python server surface when all backends are off"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"749120085864ce16e0f273c7b86fac7740b39c5b","analyzedAt":"2026-08-17T21:21:45.363Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}