tinyhumansai/openhuman · error

runtime_python disabled — cannot provision spaCy

Error message

runtime_python disabled — cannot provision spaCy

What it means

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.

Source

Thrown at src/openhuman/runtime/python_server/spacy.rs:68

}

#[derive(Debug, Clone)]
pub struct SpacyRuntime {
    pub python_bin: PathBuf,
}

/// The spaCy wire types live in the contract crate — the memory tree's query
/// extractor consumes them. See [`tinymemory_api::host::SpacyResponse`].
pub use tinymemory_api::host::{SpacyEntity, SpacyResponse};

pub async fn extract(config: &Config, text: &str) -> Result<SpacyResponse> {
    super::server::request_spacy_extract(config, text).await
}

pub async fn ensure_spacy(config: &Config) -> Result<SpacyRuntime> {
    let _guard = spacy_provision_lock().lock().await;
    if !config.runtime_python.enabled {
        bail!("runtime_python disabled — cannot provision spaCy");
    }

    let root = python_server_cache_root(config);
    tokio::fs::create_dir_all(&root).await.with_context(|| {
        format!(
            "creating runtime python server cache dir {}",
            root.display()
        )
    })?;

    let venv_dir = runtime_spacy_venv_dir(config);
    let venv_python = venv_python_path(&venv_dir);

    if spacy_venv_ready(&venv_dir) {
        log::debug!(
            "[runtime_python_server::spacy] spaCy already provisioned at {}",
            venv_dir.display()
        );

View on GitHub (pinned to 7491200858)

Solutions

  1. Set runtime_python.enabled = true
  2. Disable the spaCy-dependent extraction path if it is not needed
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at src/openhuman/runtime/python_server/spacy.rs:68 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/8b4fea6bbe30ca61. Report an issue: GitHub.