tinyhumansai/openhuman · error · anyhow::Error

unknown embedding provider: "{unknown}". Supported: "managed

Error message

unknown embedding provider: "{unknown}". Supported: "managed", "voyage", "openai", "cohere", "ollama", "custom", "none"

What it means

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.

Source

Thrown at src/openhuman/inference/embeddings/factory.rs:159

        "cohere" => Ok(TinyAgentsEmbeddingProvider::boxed(
            CohereEmbeddingModel::new(api_key)
                .with_model(model)
                .with_dimensions(dims),
        )),
        "custom" => {
            let url = custom_endpoint.unwrap_or("");
            Ok(TinyAgentsEmbeddingProvider::boxed(openai_model(
                url, api_key, model, dims, false,
            )))
        }
        name if name.starts_with("custom:") => {
            let url = custom_endpoint.unwrap_or_else(|| name.strip_prefix("custom:").unwrap_or(""));
            Ok(TinyAgentsEmbeddingProvider::boxed(openai_model(
                url, api_key, model, dims, false,
            )))
        }
        "none" => Ok(TinyAgentsEmbeddingProvider::boxed(NoopEmbeddingModel)),
        unknown => Err(anyhow::anyhow!(
            "unknown embedding provider: \"{unknown}\". \
             Supported: \"managed\", \"voyage\", \"openai\", \"cohere\", \
             \"ollama\", \"custom\", \"none\""
        )),
    }
}

/// Config-aware variant of [`create_embedding_provider_with_credentials`].
///
/// Behaves identically for every provider **except** `managed`/`cloud`. For
/// those it threads the caller's real credential-store location
/// ([`managed_credential_scope`]) into the cloud embedder's bearer resolver — the
/// same `(state_dir, encrypt)` pair
/// [`AuthService::from_config`](crate::openhuman::security::credentials::AuthService::from_config)
/// uses to **store** the `app-session` token at sign-in.
///
/// The keyless constructors hardcode `(None, true)`, which resolves to
/// `default_state_dir()` (`~/.openhuman` root) with encryption forced on. On a

View on GitHub (pinned to 7491200858)

Solutions

  1. Use one of the listed provider names (managed/voyage/openai/cohere/ollama/custom/none)
  2. Pass the endpoint via custom_endpoint when using "custom"
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at src/openhuman/inference/embeddings/factory.rs:159 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/b68bbe06df665b83. Report an issue: GitHub.