mem0ai/mem0 · error · Error
Unknown embedder provider: ${providerId}
Error message
Unknown embedder provider: ${providerId} What it means
Thrown by buildOssEmbedderConfig when the requested embedder provider id is not in the EMBEDDER_PROVIDERS catalog. Like the LLM counterpart, it resolves provider defaults (defaultModel, defaultDims, defaultUrl) from a fixed list; an unknown id means the embedding model cannot be configured, and vector dimension inference (KNOWN_EMBEDDER_DIMS) would be impossible.
Source
Thrown at integrations/openclaw/cli/oss-wizard.ts:106
if (input.apiKey) config.apiKey = input.apiKey;
if (providerId === "ollama") {
config.url = input.url || def.defaultUrl;
}
return { provider: providerId, config };
}
export interface EmbedderConfigInput {
apiKey?: string;
model?: string;
url?: string;
}
export function buildOssEmbedderConfig(
providerId: string,
input: EmbedderConfigInput,
): { provider: string; config: Record<string, unknown>; dims: number | undefined } {
const def = EMBEDDER_PROVIDERS.find((p) => p.id === providerId);
if (!def) throw new Error(`Unknown embedder provider: ${providerId}`);
const model = input.model || def.defaultModel;
const config: Record<string, unknown> = { model };
if (input.apiKey) config.apiKey = input.apiKey;
if (providerId === "ollama") {
config.url = input.url || def.defaultUrl;
}
const dims = KNOWN_EMBEDDER_DIMS[model] ?? def.defaultDims;
if (dims) config.embeddingDims = dims;
return { provider: providerId, config, dims };
}
export interface VectorConfigInput {
url?: string;
host?: string;
port?: string;
user?: string;View on GitHub (pinned to 001c235229)
Solutions
- Use an id from EMBEDDER_PROVIDERS in oss-wizard.ts — verify the current catalog first.
- If you changed embedder model, expect embedding dims to change; wipe/rebuild the local vector store rather than mixing dimensions.
- Re-run the OSS wizard (`openclaw mem0 setup`) to pick a supported embedder from the prompt.
Example fix
// before
buildOssEmbedderConfig('huggingface', {}); // Unknown embedder provider: huggingface
// after
buildOssEmbedderConfig('ollama', { url: 'http://localhost:11434' }); Defensive patterns
Strategy: validation
Validate before calling
import { EMBEDDER_PROVIDERS } from './oss-wizard.ts';
const knownEmb = EMBEDDER_PROVIDERS.map((p) => p.id);
if (!knownEmb.includes(providerId)) {
throw new Error(`embedder must be one of: ${knownEmb.join(', ')}`);
} Type guard
function isKnownEmbedderProvider(id: string): boolean {
return EMBEDDER_PROVIDERS.some((p) => p.id === id);
} Prevention
- Pick embedders from the wizard's list rather than typing ids.
- When changing embedder models, plan to rebuild the vector store (dims may differ).
When it happens
Trigger: Passing an embedder id absent from EMBEDDER_PROVIDERS: typos, casing mismatches ('OpenAI'), or ids from a different plugin version. The function then cannot look up defaultDims, so it refuses rather than building a config with unknown embedding dimensions (which would corrupt the local vector store).
Common situations: Switching embedders during OSS setup and typing the name manually; config generated by an older wizard version referencing a removed embedder; changing the embedder after vectors were already created with different dims.
Related errors
- Unknown LLM provider: ${providerId}
- Langchain embedder provider requires an initialized Langchai
- ${label} has unknown keys: ${unknown.join(", ")}
- openclaw-mem0 config required
- Either memoryId or all is required
AI-assisted analysis of mem0ai/mem0@001c235229 (2026-08-15).
Data as JSON: /api/errors/8c040404037761ef.
Report an issue: GitHub.