#Error: Could not open session database: no such module: fts5 (continued)

1 messages · Page 1 of 1 (latest)

simple bane
#

This: https://discord.com/channels/1053877538025386074/1509994587903623449 is resolved for me, I can get a working hermes search with the workaround I mentioned, but I had a look at the merged fix, see my comments on github:
https://github.com/NousResearch/hermes-agent/pull/35103

and the PR:

  • did not gracefully install a working python3.11 with uv (maybe its still using a cached version??)
  • did not gracefully handle a missing fts5 install

Would be happy to help debug this further

GitHub

Summary
Hermes no longer dies with Could not open session database: no such module: fts5 on installs whose bundled SQLite lacks FTS5, and the supported installer now guarantees an FTS5-capable Pyth...

atomic ferry
#

@simple bane please use the actual installer through the documentation for hermes

#

pip install isn't the ideal way, its only for ZED to function properly

simple bane
#
$ curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash


┌─────────────────────────────────────────────────────────┐
│             ⚕ Hermes Agent Installer                    │
├─────────────────────────────────────────────────────────┤
│  An open source AI agent by Nous Research.              │
└─────────────────────────────────────────────────────────┘

✓ Detected: linux (ubuntu)
→ Checking for uv package manager...
✓ uv found (uv 0.7.20)
→ Checking Python 3.11...
✓ Python found: Python 3.11.13
⚠ Resolved Python's SQLite lacks the FTS5 module (session search needs it).
→ Reinstalling a current Python 3.11 with FTS5 via uv...
⚠ Could not obtain an FTS5-capable Python. Hermes will run, but
⚠ full-text session search will be disabled until FTS5 is present.
...
$ hermes debug share
Collecting debug report...
Uploading...

Upload failed: Failed to upload to any paste service:
  paste.rs: <urlopen error [Errno 101] Network is unreachable>
  dpaste.com: <urlopen error [Errno 101] Network is unreachable>

Full report printed below — copy-paste it manually:

[hermes debug share: log content redacted at upload time. run with --no-redact to disable]
--- hermes dump ---
version:          0.15.1 (2026.5.29) [0437137f]
os:               Linux 6.8.0-62-generic x86_64
python:           3.11.13
openai_sdk:       2.24.0
profile:          default
hermes_home:      ~/.hermes
$ hermes sessions list
Error: Could not open session database: no such module: fts5

so the reinstalling step fails and the workaround for fts5 init fails

#

, switching to my branch I can at least get hermes sessions list to work again, on my fork:

$ git checkout fix/survive-missing-fts5
$ ./setup_hermes.sh
$ hermes debug share
--- hermes dump ---
version:          0.15.1 (2026.5.29) [34e6e9e9]
os:               Linux 6.8.0-62-generic x86_64
python:           3.11.13
openai_sdk:       2.24.0
profile:          default
hermes_home:      ~/.hermes
$ hermes sessions list
Title                            Preview                                  Last Active   ID
<my sessions redacted>
simple bane
#

I was able to re-produce this part:

→ Checking for uv package manager...
✓ uv found (uv 0.7.20)
→ Checking Python 3.11...
✓ Python found: Python 3.11.13
⚠ Resolved Python's SQLite lacks the FTS5 module (session search needs it).
→ Reinstalling a current Python 3.11 with FTS5 via uv...
⚠ Could not obtain an FTS5-capable Python. Hermes will run, but
⚠ full-text session search will be disabled until FTS5 is present.

with this minimal docker image:

FROM ubuntu:24.04 AS base
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && \
    apt-get install -y --no-install-recommends \
      curl ca-certificates gnupg git \
    build-essential wget\
    python3.12 python3.12-venv python3.12-dev python3-pip && \
    rm -rf /var/lib/apt/lists/*

# Intentionally install old uv
RUN python3.12 -m pip install --break-system-packages uv==0.7.20

# Run the installer
RUN curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash

so the problem might not be a stale python3.11 (so the re-install is not the right fix) but rather too old uv install?

slate ibex
#

Thanks again for the repro.

#35103 covered the fresh no-FTS-table case, but there were still reachable paths where Hermes could crash if SQLite FTS5 was unavailable:

  • an existing state.db already had FTS virtual tables, then was reopened under a Python runtime without FTS5
  • older schema migrations could still touch FTS tables before the fallback path
  • existing FTS triggers could keep breaking message writes even after search was supposed to degrade

I opened a follow-up PR for that runtime fallback here:

https://github.com/NousResearch/hermes-agent/pull/35452

cc @formal warren or @atomic ferry (review?)

That PR does not try to solve the old-uv installer behavior yet. It makes Hermes survive the missing-FTS5 runtime by disabling full-text session search while keeping session/message storage working. If FTS5 support comes back later, it restores the triggers and rebuilds the FTS indexes.

GitHub

What does this PR do?
Completes the SessionDB graceful-degradation path for Python runtimes whose sqlite3 module cannot load SQLite FTS5.
#35103 made fresh no-FTS5 installs survive the initial FTS ...