mem0ai/mem0 · error · Error
Databricks index status did not report a readiness flag afte
Error message
Databricks index status did not report a readiness flag after sync.
What it means
Thrown when polling GET /indexes/{fullIndexName} after a sync operation and the response's status.ready field is neither true nor false (i.e. undefined/null). The provider treats a missing readiness flag as a malformed or unexpected API response rather than 'not ready', and fails fast instead of looping on an unknowable state.
Source
Thrown at mem0-ts/src/oss/src/vector_stores/databricks.ts:1250
`Timed out waiting for Databricks endpoint ${this.endpointName} to become ready.`,
);
}
private async waitForIndexReadiness(): Promise<void> {
const deadline = Date.now() + this.syncTimeoutMs;
while (Date.now() <= deadline) {
const response = await this.httpClient.get(
`/indexes/${encodeURIComponent(this.fullIndexName)}`,
);
const ready = response?.data?.status?.ready;
if (ready === true) {
return;
}
if (ready !== false) {
throw new Error(
"Databricks index status did not report a readiness flag after sync.",
);
}
if (this.syncPollIntervalMs > 0) {
await new Promise((resolve) =>
setTimeout(resolve, this.syncPollIntervalMs),
);
}
}
throw new Error(
`Timed out waiting for Databricks index ${this.fullIndexName} to become ready after sync.`,
);
}
private shouldPaginateForLocalFiltering(filters?: SearchFilters): boolean {
if (!filters || Object.keys(filters).length === 0) {View on GitHub (pinned to 001c235229)
Solutions
- Log the raw response body of GET /indexes/{fullIndexName} to confirm what status is actually returned; a missing ready flag usually means the index is missing or in a terminal state.
- Verify fullIndexName uses the correct 'catalog.schema.index' format and that the index exists in the Databricks UI.
- Recreate the index if it was dropped or failed to create, then retry the operation.
- Check for Databricks API version differences on your workspace and pin/upgrade the mem0-ts version that matches it.
Defensive patterns
Strategy: validation
Validate before calling
const res = await client.get(`/api/2.0/vector-search/indexes/${encodeURIComponent(fullIndexName)}`);
const ready = res?.data?.status?.ready;
if (typeof ready !== 'boolean') {
// index missing or in a terminal state: recreate or alert before syncing
console.error('Index status payload unexpected:', JSON.stringify(res?.data));
} Type guard
const hasReadinessFlag = (res: unknown): res is { data: { status: { ready: boolean } } } =>
typeof (res as any)?.data?.status?.ready === 'boolean'; Try / catch
try {
await store.insert(vectors, ids, payloads);
} catch (e) {
if (e instanceof Error && e.message.includes('did not report a readiness flag')) {
// inspect/recreate the index in Databricks, then retry the insert
}
throw e;
} Prevention
- Verify the index exists and is healthy in the Databricks UI before running sync-triggering workloads.
- Use the exact 'catalog.schema.index' fullIndexName format in config.
- Pin a mem0-ts version tested against your workspace's Databricks API version.
When it happens
Trigger: Any insert/update flow that triggers index sync, then calls waitForIndexReadiness(), when the Databricks API response for the index omits data.status.ready (different API version, index in a deleted/failed state, or response shape change).
Common situations: Databricks REST API version drift between workspace versions; index was deleted out-of-band while the app was syncing; the fullIndexName (schema.index) does not exist so the response has no status object; Databricks returning an error payload that is not shaped as expected.
Related errors
- Timed out waiting for Databricks index ${this.fullIndexName}
- Databricks vector store requires either workspaceUrl or host
- Timed out waiting for Databricks endpoint ${this.endpointNam
- AND filter value must be a list of filter dicts, got ${typeo
- OR filter value must be a list of filter dicts, got ${typeof
AI-assisted analysis of mem0ai/mem0@001c235229 (2026-08-15).
Data as JSON: /api/errors/572abecb6dbe6c28.
Report an issue: GitHub.