{"record":{"id":"b68bbe06df665b83","repo":"tinyhumansai/openhuman","slug":"unknown-embedding-provider-unknown-supported-b68bbe","errorCode":null,"errorMessage":"unknown embedding provider: \"{unknown}\". Supported: \"managed\", \"voyage\", \"openai\", \"cohere\", \"ollama\", \"custom\", \"none\"","messagePattern":"unknown embedding provider: \"(.+?)\"\\. Supported: \"managed\", \"voyage\", \"openai\", \"cohere\", \"ollama\", \"custom\", \"none\"","errorType":"validation","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"src/openhuman/inference/embeddings/factory.rs","lineNumber":159,"sourceCode":"        \"cohere\" => Ok(TinyAgentsEmbeddingProvider::boxed(\n            CohereEmbeddingModel::new(api_key)\n                .with_model(model)\n                .with_dimensions(dims),\n        )),\n        \"custom\" => {\n            let url = custom_endpoint.unwrap_or(\"\");\n            Ok(TinyAgentsEmbeddingProvider::boxed(openai_model(\n                url, api_key, model, dims, false,\n            )))\n        }\n        name if name.starts_with(\"custom:\") => {\n            let url = custom_endpoint.unwrap_or_else(|| name.strip_prefix(\"custom:\").unwrap_or(\"\"));\n            Ok(TinyAgentsEmbeddingProvider::boxed(openai_model(\n                url, api_key, model, dims, false,\n            )))\n        }\n        \"none\" => Ok(TinyAgentsEmbeddingProvider::boxed(NoopEmbeddingModel)),\n        unknown => Err(anyhow::anyhow!(\n            \"unknown embedding provider: \\\"{unknown}\\\". \\\n             Supported: \\\"managed\\\", \\\"voyage\\\", \\\"openai\\\", \\\"cohere\\\", \\\n             \\\"ollama\\\", \\\"custom\\\", \\\"none\\\"\"\n        )),\n    }\n}\n\n/// Config-aware variant of [`create_embedding_provider_with_credentials`].\n///\n/// Behaves identically for every provider **except** `managed`/`cloud`. For\n/// those it threads the caller's real credential-store location\n/// ([`managed_credential_scope`]) into the cloud embedder's bearer resolver — the\n/// same `(state_dir, encrypt)` pair\n/// [`AuthService::from_config`](crate::openhuman::security::credentials::AuthService::from_config)\n/// uses to **store** the `app-session` token at sign-in.\n///\n/// The keyless constructors hardcode `(None, true)`, which resolves to\n/// `default_state_dir()` (`~/.openhuman` root) with encryption forced on. On a","sourceCodeStart":141,"sourceCodeEnd":177,"githubUrl":"https://github.com/tinyhumansai/openhuman/blob/749120085864ce16e0f273c7b86fac7740b39c5b/src/openhuman/inference/embeddings/factory.rs#L141-L177","documentation":"The authenticated embedding factory (explicit api_key path) did not recognise the configured provider name; same validation as the default factory but with `custom` taking a separate custom_endpoint argument instead of the custom:<url> inline form. The provider string in config is misspelled or unsupported.","triggerScenarios":"Thrown at src/openhuman/inference/embeddings/factory.rs:159 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Use one of the listed provider names (managed/voyage/openai/cohere/ollama/custom/none)","Pass the endpoint via custom_endpoint when using \"custom\""],"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"}