You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[BUG] Fatal crash on startup when python.org Python 3.12 is present alongside Homebrew on macOS #711
When macOS has python.org Python 3.12 installed alongside Homebrew, uvx picks it up instead of downloading its own CPython. python.org's Python is compiled without enable_load_extension, which causes basic-memory's semantic search initialization to crash fatally before the MCP handshake completes. Claude Desktop never connects.
The server does recover gracefully if given enough time (falling back to keyword search on second startup), but Claude Desktop's connection window is too short — it sees the initial crash and gives up permanently until restarted.
The same configuration works correctly on a machine where python.org Python was never installed, where uvx downloads its own CPython instead.
This issue was diagnosed with the assistance of Claude (Anthropic).
Steps To Reproduce
Have macOS with python.org Python 3.12 installed at /Library/Frameworks/Python.framework/Versions/3.12/
Install Homebrew and basic-memory: brew tap basicmachines-co/basic-memory && brew install basic-memory
Configure Claude Desktop with the official documented config:
See MCP connection error: Server transport closed unexpectedly
Expected Behavior
Basic-memory MCP server starts and connects to Claude Desktop. If enable_load_extension is unavailable, the server should fall back to keyword search and remain running — which it already does on second startup, just too late for Claude Desktop's connection window.
Actual Behavior
Server crashes during initialization with:
AttributeError: 'sqlite3.Connection' object has no attribute 'enable_load_extension'
Why not uninstall python.org Python: The python.org Python installation had legitimate packages (Flask, gunicorn, mistralai, etc.) so removing it would break other things.
Note: Claude Desktop launches GUI apps with a minimal PATH that doesn't include /opt/homebrew/bin, so shell-level PATH fixes (.zshrc, .zprofile) do not propagate to Claude Desktop or uvx.
Possible Solution
Two options, either or both:
Make semantic search initialization non-fatal at startup. The server already recovers gracefully on second startup (logs show it falls back to keyword search with Semantic embeddings missing — backfill will run in background). Making this happen on first startup — before the MCP handshake — would prevent the crash entirely.
Document the python.org Python conflict. Add a note to the troubleshooting guide that if enable_load_extension errors appear, the likely cause is python.org Python being present on the system, and that the fix is adding an explicit PATH to the Claude Desktop MCP config.
This bug is probably not affecting many, but after over two hours today trying to figure out why the MCP wasn’t loading in Claude Desktop, I thought I would share my findings.
As a side note, this happened on a Mac that I didn’t use for two months since end of January (I was away). Basic Memory was running fine back then. Therefore, maybe a regression was introduced in an update somewhere. I don’t know.
Activity
phernandez commentedon Apr 2, 2026
Thanks @egoes for the detailed description. We'll take a look
egoes commentedon Apr 2, 2026
This bug is probably not affecting many, but after over two hours today trying to figure out why the MCP wasn’t loading in Claude Desktop, I thought I would share my findings.
As a side note, this happened on a Mac that I didn’t use for two months since end of January (I was away). Basic Memory was running fine back then. Therefore, maybe a regression was introduced in an update somewhere. I don’t know.
fix(core): tolerate missing vec0 module during project delete
fix(core): upgrade the SQLite chunk manifest even when semantic searc…
fix(core): keep keyword-only hosts working now that semantic search i…
fix(core): honor --cloud and client factories in search defaults; ski…
fix(core): skip deferred embedding resume when semantic search fell back
fix(core): report a keyword-only host in embedding status and project…
fix(core): fall back to keyword search when sqlite-vec fails to load;…
fix(core): skip deferred embedding resume when semantic search fell back