{"record":{"id":"8b4fea6bbe30ca61","repo":"tinyhumansai/openhuman","slug":"runtime-python-disabled-cannot-provision-spacy","errorCode":null,"errorMessage":"runtime_python disabled — cannot provision spaCy","messagePattern":"runtime_python disabled — cannot provision spaCy","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/openhuman/runtime/python_server/spacy.rs","lineNumber":68,"sourceCode":"}\n\n#[derive(Debug, Clone)]\npub struct SpacyRuntime {\n    pub python_bin: PathBuf,\n}\n\n/// The spaCy wire types live in the contract crate — the memory tree's query\n/// extractor consumes them. See [`tinymemory_api::host::SpacyResponse`].\npub use tinymemory_api::host::{SpacyEntity, SpacyResponse};\n\npub async fn extract(config: &Config, text: &str) -> Result<SpacyResponse> {\n    super::server::request_spacy_extract(config, text).await\n}\n\npub async fn ensure_spacy(config: &Config) -> Result<SpacyRuntime> {\n    let _guard = spacy_provision_lock().lock().await;\n    if !config.runtime_python.enabled {\n        bail!(\"runtime_python disabled — cannot provision spaCy\");\n    }\n\n    let root = python_server_cache_root(config);\n    tokio::fs::create_dir_all(&root).await.with_context(|| {\n        format!(\n            \"creating runtime python server cache dir {}\",\n            root.display()\n        )\n    })?;\n\n    let venv_dir = runtime_spacy_venv_dir(config);\n    let venv_python = venv_python_path(&venv_dir);\n\n    if spacy_venv_ready(&venv_dir) {\n        log::debug!(\n            \"[runtime_python_server::spacy] spaCy already provisioned at {}\",\n            venv_dir.display()\n        );","sourceCodeStart":50,"sourceCodeEnd":86,"githubUrl":"https://github.com/tinyhumansai/openhuman/blob/749120085864ce16e0f273c7b86fac7740b39c5b/src/openhuman/runtime/python_server/spacy.rs#L50-L86","documentation":"ensure_spacy's precondition found runtime_python.enabled = false — no base interpreter exists to build the spaCy venv from. A config gate evaluated before any provisioning work.","triggerScenarios":"Thrown at src/openhuman/runtime/python_server/spacy.rs:68 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Set runtime_python.enabled = true","Disable the spaCy-dependent extraction path if it is not needed"],"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"}