mem0ai/mem0 · error · Error
Databricks vector store requires either workspaceUrl or…
Error message
Databricks vector store requires either workspaceUrl or host.
What it means
extractHostAndWorkspaceUrl() derives the workspace URL used for every Management/Vector Search API call. It first tries config.workspaceUrl, then config.host, and throws if neither is set — the store has no endpoint to talk to.
Solutions
- Set host: 'adb-1234567890123456.7.azuredatabricks.net' (or your cloud's equivalent) in the vector store config
- Or set workspaceUrl: 'https://adb-....azuredatabricks.net' — both forms are accepted
- If config comes from env, ensure the variable is present and fail config loading early when it is missing
Example fix
// before
new Databricks({ accessToken, catalog: 'main', schema: 'default' });
// after
new Databricks({
host: 'adb-1234567890123456.7.azuredatabricks.net',
accessToken,
catalog: 'main',
schema: 'default',
}); Defensive patterns
Strategy: validation
Validate before calling
if (!cfg.workspaceUrl && !cfg.host) {
throw new Error('Databricks config requires workspaceUrl or host');
} Type guard
const hasDatabricksHost = (c: any): boolean => Boolean(c?.workspaceUrl || c?.host);
Prevention
- Make host a required field in a zod schema for the config object
- Fail startup when DATABRICKS_HOST is unset rather than passing undefined
When it happens
Trigger: Constructing the Databricks vector store with neither workspaceUrl nor host in the config, e.g. both left undefined because the env vars were not read (DATABRICKS_HOST unset).
Common situations: Missing DATABRICKS_HOST / DATABRICKS_URL in the deployment environment; passing the host inside an auth sub-object or wrong key ('serverUrl', 'workspace'); config built from a partial env where the key is optional and skipped.
Related errors
- AND filter value must be a list of filter dicts, got
- Cassandra vector store requires contactPoints when…
- Cassandra vector store requires localDataCenter when…
- Databricks HYBRID search requires query_text, but search()…
- Databricks index status did not report a readiness flag…
AI-assisted analysis of mem0ai/mem0@001c235229 (2026-08-15).
Data as JSON: /api/errors/27168e2abdd229e1.
Report an issue: GitHub.
Appendix: source
Thrown at mem0-ts/src/oss/src/vector_stores/databricks.ts:116
host: string;
workspaceUrl: string;
} {
if (config.workspaceUrl) {
const url = new URL(config.workspaceUrl);
return {
host: url.host,
workspaceUrl: `${url.protocol}//${url.host}`,
};
}
if (config.host) {
return {
host: config.host,
workspaceUrl: `https://${config.host}`,
};
}
throw new Error(
"Databricks vector store requires either workspaceUrl or host.",
);
}
// `Memory.search()` hands keywordSearch() an already-lemmatized query, so BM25 has to score
// against lemmatized text. Same contract as baidu.ts / pgvector.ts.
function lemmatizedText(payload: Record<string, any>): string {
const data = typeof payload.data === "string" ? payload.data : "";
return typeof payload.textLemmatized === "string" &&
payload.textLemmatized.length > 0
? payload.textLemmatized
: data;
}
function formatSqlValue(value: any): string {
if (value === null || value === undefined) {
return "NULL";
}View on GitHub (pinned to 001c235229)