diff --git a/api/repositories/workflow_node_execution/sqlalchemy_repository.py b/api/repositories/workflow_node_execution/sqlalchemy_repository.py index 0594d816a2..e0ad384be6 100644 --- a/api/repositories/workflow_node_execution/sqlalchemy_repository.py +++ b/api/repositories/workflow_node_execution/sqlalchemy_repository.py @@ -37,8 +37,12 @@ class SQLAlchemyWorkflowNodeExecutionRepository: # If an engine is provided, create a sessionmaker from it if isinstance(session_factory, Engine): self._session_factory = sessionmaker(bind=session_factory, expire_on_commit=False) - else: + elif isinstance(session_factory, sessionmaker): self._session_factory = session_factory + else: + raise ValueError( + f"Invalid session_factory type {type(session_factory).__name__}; expected sessionmaker or Engine" + ) self._tenant_id = tenant_id self._app_id = app_id diff --git a/api/services/workflow_run_service.py b/api/services/workflow_run_service.py index ff3b33eecd..8b7213eefb 100644 --- a/api/services/workflow_run_service.py +++ b/api/services/workflow_run_service.py @@ -133,7 +133,7 @@ class WorkflowRunService: params={ "tenant_id": app_model.tenant_id, "app_id": app_model.id, - "session_factory": db.session.get_bind, + "session_factory": db.session.get_bind(), } ) diff --git a/api/tasks/remove_app_and_related_data_task.py b/api/tasks/remove_app_and_related_data_task.py index 4542b1b923..cd8981abf6 100644 --- a/api/tasks/remove_app_and_related_data_task.py +++ b/api/tasks/remove_app_and_related_data_task.py @@ -193,7 +193,7 @@ def _delete_app_workflow_node_executions(tenant_id: str, app_id: str): params={ "tenant_id": tenant_id, "app_id": app_id, - "session_factory": db.session.get_bind, + "session_factory": db.session.get_bind(), } )