From c92e1d56bb3a50e092c9f2f6bbe28d56deebc986 Mon Sep 17 00:00:00 2001 From: Kian Jones <11655409+kianjones9@users.noreply.github.com> Date: Tue, 4 Nov 2025 10:27:26 -0800 Subject: [PATCH] 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. --- letta/jobs/scheduler.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/letta/jobs/scheduler.py b/letta/jobs/scheduler.py index 1e6867b2..8b1bac10 100644 --- a/letta/jobs/scheduler.py +++ b/letta/jobs/scheduler.py @@ -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} )