{"record":{"id":"973cc78140804521","repo":"tinyhumansai/openhuman","slug":"ollama-api-tags-response-is-missing-the-models","errorCode":null,"errorMessage":"Ollama /api/tags response is missing the `models` key — cannot verify embedding model `{model}`. Ollama API may have changed.","messagePattern":"Ollama /api/tags response is missing the `models` key — cannot verify embedding model `(.+?)`\\. Ollama API may have changed\\.","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/openhuman/platform/doctor/core.rs","lineNumber":948,"sourceCode":"    let body = match resp.text() {\n        Ok(t) => t,\n        Err(e) => {\n            items.push(DiagnosticItem::warn(\n                cat,\n                format!(\"Ollama /api/tags response could not be read: {e}\"),\n            ));\n            return;\n        }\n    };\n\n    // Parse the JSON and extract the `models` array.  If the response is\n    // malformed or the schema changed (missing `models` key), report that\n    // explicitly instead of falling through to \"model NOT installed\".\n    let models_array = match serde_json::from_str::<serde_json::Value>(&body) {\n        Ok(v) => match v.get(\"models\").and_then(|m| m.as_array()) {\n            Some(arr) => arr.clone(),\n            None => {\n                items.push(DiagnosticItem::warn(\n                    cat,\n                    format!(\n                        \"Ollama /api/tags response is missing the `models` key — \\\n                         cannot verify embedding model `{model}`. Ollama API may have changed.\"\n                    ),\n                ));\n                return;\n            }\n        },\n        Err(e) => {\n            items.push(DiagnosticItem::warn(\n                cat,\n                format!(\n                    \"Ollama /api/tags returned invalid JSON — \\\n                     cannot verify embedding model `{model}`: {e}\"\n                ),\n            ));\n            return;","sourceCodeStart":930,"sourceCodeEnd":966,"githubUrl":"https://github.com/tinyhumansai/openhuman/blob/749120085864ce16e0f273c7b86fac7740b39c5b/src/openhuman/platform/doctor/core.rs#L930-L966","documentation":"Doctor embedding-model probe: the /api/tags JSON parsed but has no top-level `models` array. Because Ollama's schema is assumed stable, this is reported explicitly as a possible API change rather than misreported as \"model not installed\". Consequence: the doctor cannot verify whether the configured embedding model is pulled, so it warns and stops rather than producing a false negative.","triggerScenarios":"Thrown at src/openhuman/platform/doctor/core.rs:948 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check the Ollama version; if /api/tags changed shape, update Ollama or adjust the probe","Confirm you are probing the real Ollama daemon and not another service answering on that port","Manually verify with `ollama list` that the embedding model is present"],"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-14T05:17:10.506Z"}