fix: use async_session_factory directly in scheduler (#5944)

DatabaseRegistry.get_async_session_factory() was removed during the sync
DB removal refactor, but scheduler.py still referenced it. This caused
AttributeError failures in all integration and send-message tests.

Fix by importing and using async_session_factory() directly from db module.
This commit is contained in:
Kian Jones
2025-11-04 10:27:26 -08:00
committed by Caren Thomas
parent caa79d7bc9
commit c92e1d56bb

View File

@@ -8,7 +8,7 @@ from sqlalchemy import text
from letta.jobs.llm_batch_job_polling import poll_running_llm_batches
from letta.log import get_logger
from letta.server.db import db_registry
from letta.server.db import async_session_factory, db_registry
from letta.server.server import SyncServer
from letta.settings import settings
@@ -42,7 +42,7 @@ async def _try_acquire_lock_and_start_scheduler(server: SyncServer) -> bool:
logger.warning(f"Advisory locks not supported for {engine_name} database. Starting scheduler without leader election.")
acquired_lock = True
else:
lock_session = db_registry.get_async_session_factory()()
lock_session = async_session_factory()
result = await lock_session.execute(
text("SELECT pg_try_advisory_lock(CAST(:lock_key AS bigint))"), {"lock_key": ADVISORY_LOCK_KEY}
)