{"record":{"id":"d8ced67273aa4616","repo":"tinyhumansai/openhuman","slug":"unsupported-local-provider-string-provider","errorCode":null,"errorMessage":"unsupported local provider string '{provider}'","messagePattern":"unsupported local provider string '(.+?)'","errorType":"validation","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"src/openhuman/inference/provider/factory.rs","lineNumber":1860,"sourceCode":"            auth,\n            &model,\n            &unsupported,\n            temp,\n            None,\n        );\n        return Some(Ok((chat, model)));\n    }\n    None\n}\n\n/// Build a crate-native local-runtime model for setup/probe calls that run\n/// before the desktop session gate is established.\npub(crate) fn create_local_chat_model_from_string(\n    provider: &str,\n    config: &Config,\n) -> anyhow::Result<(Arc<dyn ChatModel<()>>, String)> {\n    try_create_local_runtime_chat_model_from_string(\"chat\", provider, config, false)\n        .ok_or_else(|| anyhow::anyhow!(\"unsupported local provider string '{provider}'\"))?\n}\n\n/// Verify the user has an active OpenHuman backend session.\n///\n/// Without this check, an unregistered user can configure every workload\n/// to use a custom cloud provider and bypass the session requirement\n/// entirely.  This function ensures that custom providers (Ollama,\n/// `<slug>:<model>`) are only reachable when the workspace holds a valid\n/// `app-session` JWT.\n///\n/// `pub(crate)`: also reused directly by the flows provider-connectivity\n/// author gate (issue B45, `openhuman::flows::ops::evaluate_inference_readiness`)\n/// as its Layer 1 sync session check, so the author-time gate and this\n/// construction-time chokepoint can never diverge on what \"session active\"\n/// means.\npub(crate) fn verify_session_active(config: &Config) -> anyhow::Result<()> {\n    // AgentBox marketplace containers run headless with no desktop\n    // `app-session` JWT — the deployment is operator-controlled and ships its","sourceCodeStart":1842,"sourceCodeEnd":1878,"githubUrl":"https://github.com/tinyhumansai/openhuman/blob/749120085864ce16e0f273c7b86fac7740b39c5b/src/openhuman/inference/provider/factory.rs#L1842-L1878","documentation":"Returned by create_local_chat_model_from_string when the provider string does not match any known local-runtime provider scheme; the Option-based resolver returned None and the caller converted it into this anyhow error. Used by setup/probe paths that run before the desktop session gate.","triggerScenarios":"Thrown at src/openhuman/inference/provider/factory.rs:1860 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Use a supported local provider string (e.g. an ollama://, lmstudio, or llama.cpp-style local endpoint identifier as documented for local inference)","If targeting a cloud provider, use the cloud provider resolution path instead of the local-runtime factory"],"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"}