mem0ai/mem0 · error · Error

Timed out waiting for Databricks endpoint ${this.endpointNam

Error message

Timed out waiting for Databricks endpoint ${this.endpointName} to become ready.

What it means

Thrown by the Databricks vector store after waitForEndpointReadiness() polls the Databricks Vector Search endpoint status until syncTimeoutMs expires without reaching a ready state. The loop only exits early when the API reports a ready state; any other state keeps polling until the deadline. This is a provisioning-wait timeout, not a network failure.

Source

Thrown at mem0-ts/src/oss/src/vector_stores/databricks.ts:1231

      if (state === "ONLINE") {
        return;
      }

      if (typeof state !== "string") {
        throw new Error(
          "Databricks endpoint status did not report a state during initialization.",
        );
      }

      if (this.syncPollIntervalMs > 0) {
        await new Promise((resolve) =>
          setTimeout(resolve, this.syncPollIntervalMs),
        );
      }
    }

    throw new Error(
      `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) {

View on GitHub (pinned to 001c235229)

Solutions

  1. Increase syncTimeoutMs in the Databricks vector store config (e.g. 900000 for 15 minutes) to cover endpoint provisioning time.
  2. Check the endpoint state in the Databricks workspace (Vector Search > Endpoints) and confirm it reaches ONLINE/ready before starting the app.
  3. Pre-provision the endpoint once via the Databricks UI or API outside your app so subsequent runs only verify readiness.
  4. Verify this.endpointName matches an existing endpoint; a typo means it never becomes ready.

Example fix

// before
const store = new DatabricksDB({
  endpointName: 'my-endpoint',
  // default syncTimeoutMs too short for cold provisioning
});

// after
const store = new DatabricksDB({
  endpointName: 'my-endpoint',
  syncTimeoutMs: 15 * 60 * 1000, // wait up to 15 min for provisioning
  syncPollIntervalMs: 10_000,
});
Defensive patterns

Strategy: retry

Validate before calling

// Before constructing the store, check endpoint state via Databricks API
// (assumes an axios/http client with workspace auth):
const res = await client.get(`/api/2.0/vector-search/endpoints/${encodeURIComponent(endpointName)}`);
const state = res?.data?.endpoint_status?.state;
if (state !== 'ONLINE' && state !== 'ENDPOINT_READY') {
  // wait or provision before creating DatabricksDB
}

Try / catch

try {
  const store = new DatabricksDB(config);
  await store.init?.();
} catch (e) {
  if (e instanceof Error && e.message.includes('Timed out waiting for Databricks endpoint')) {
    // endpoint provisioning is slow: lengthen timeout and retry once
    await new Promise(r => setTimeout(r, 60_000));
    return initStore({ ...config, syncTimeoutMs: config.syncTimeoutMs * 2 });
  }
  throw e;
}

Prevention

When it happens

Trigger: Constructing the DatabricksDB vector store (or any operation that triggers endpoint initialization) when the Databricks Vector Search endpoint is still PROVISIONING or stuck in a non-ready state for longer than syncTimeoutMs (set via config). Also triggered when syncTimeoutMs is set too low relative to Databricks endpoint provisioning time (often 5-15 minutes).

Common situations: First run against a new Databricks workspace where the endpoint must be provisioned from scratch; a default syncTimeoutMs that is shorter than Databricks provisioning time; endpoint scaled to zero and restarting; Databricks UI showing the endpoint in PROVISIONING while the SDK keeps polling.

Understand the failure class

Related errors


AI-assisted analysis of mem0ai/mem0@001c235229 (2026-08-15). Data as JSON: /api/errors/9ae6f476f9ef55d5. Report an issue: GitHub.