tinyhumansai/openhuman · error

Ollama /api/tags response could not be read: {e}

Error message

Ollama /api/tags response could not be read: {e}

What it means

Doctor embedding-model probe: Ollama answered the /api/tags request (the status check above passed) but resp.text() failed while reading the body, so the model list could not be parsed. The probe degrades to a warn and gives up verification — the daemon is reachable, but the configured embedding model's presence remains unknown.

Source

Thrown at src/openhuman/platform/doctor/core.rs:933

    };

    if !resp.status().is_success() {
        items.push(DiagnosticItem::error(
            cat,
            format!(
                "Ollama /api/tags returned {} at {base_url} — cannot verify embedding model `{model}`. \
                 Start Ollama and run: ollama pull {model}",
                resp.status()
            ),
        ));
        return;
    }

    // Parse the tags response and look for the configured model.
    let body = match resp.text() {
        Ok(t) => t,
        Err(e) => {
            items.push(DiagnosticItem::warn(
                cat,
                format!("Ollama /api/tags response could not be read: {e}"),
            ));
            return;
        }
    };

    // Parse the JSON and extract the `models` array.  If the response is
    // malformed or the schema changed (missing `models` key), report that
    // explicitly instead of falling through to "model NOT installed".
    let models_array = match serde_json::from_str::<serde_json::Value>(&body) {
        Ok(v) => match v.get("models").and_then(|m| m.as_array()) {
            Some(arr) => arr.clone(),
            None => {
                items.push(DiagnosticItem::warn(
                    cat,
                    format!(
                        "Ollama /api/tags response is missing the `models` key — \

View on GitHub (pinned to 7491200858)

Solutions

  1. Re-run the doctor; interrupted body reads are usually transient connection drops
  2. Check for a reverse proxy or aggressive timeout between the core and Ollama truncacing responses
  3. Verify with curl that /api/tags returns a full body
Defensive patterns

Strategy: fallback

When it happens

Trigger: Thrown at src/openhuman/platform/doctor/core.rs:933 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/04819d2281f85460. Report an issue: GitHub.