Skip to content

Embedded seekdb on macOS aborts with uncaught vsag::VsagException #37

@webup

Description

@webup

Summary

Using embedded seekdb on macOS aborts the Node process with:

libc++abi: terminating due to uncaught exception of type vsag::VsagException

I hit this through powermem@0.1.0, but the failure appears to be inside the native seekdb / vsag layer rather than a JavaScript exception.

Environment

  • macOS 15.7.4 (24G517)
  • Node.js v22.13.0
  • seekdb 1.2.0
  • powermem 0.1.0

Repro

This repro crashes the process for me:

import fs from 'node:fs';
import os from 'node:os';
import path from 'node:path';
import { Memory } from 'powermem';

class MockEmbeddings {
  async embedDocuments(docs) {
    return docs.map((doc) => Array.from({ length: 8 }, (_, i) => (i === 0 ? doc.length : 0)));
  }

  async embedQuery(doc) {
    return Array.from({ length: 8 }, (_, i) => (i === 0 ? doc.length : 0));
  }
}

const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'pmem-ob-'));

const memory = await Memory.create({
  embeddings: new MockEmbeddings(),
  config: {
    vectorStore: {
      provider: 'oceanbase',
      config: {
        host: '',
        obPath: tmpDir,
        dbName: 'test',
        collectionName: 'memories',
        embeddingModelDims: 8,
      },
    },
    intelligentMemory: { enabled: false },
  },
});

const added = await memory.add('hello oceanbase embedded', {
  userId: 'u1',
  infer: false,
});

console.log({
  tmpDir,
  storageType: memory.getStorageType(),
  memoryId: added.memories[0].memoryId,
});

const found = await memory.search('hello', {
  userId: 'u1',
  limit: 5,
});

console.log(found.results.slice(0, 1));
await memory.close();

Observed behavior

The process aborts with only:

libc++abi: terminating due to uncaught exception of type vsag::VsagException

Using node --trace-uncaught did not produce any additional JS stack.

Additional notes

  • I also saw similar aborts when running upstream powermem-ts seekdb tests locally.
  • This makes it hard to know whether the crash happens during collection creation, insert/search, or teardown, because the process terminates in native code before surfacing more detail.
  • I did not get a useful macOS crash report in the local DiagnosticReports path for this run.

If helpful, I can also provide a repro using the seekdb API directly instead of powermem.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions