From 71639030bae35e997d95815e9647c545c7da483a Mon Sep 17 00:00:00 2001 From: Vadym Samoilenko Date: Thu, 14 May 2026 15:50:36 +0100 Subject: [PATCH] Fix 500 error on knowledge base Process Documents MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit knowledge_base_service and analysis_service were local variables inside the lifespan() function — not module-level exports. Importing them via 'from app.main import ...' always failed with ImportError → 500. Use request.app.state (same pattern as analysis_routes.py) instead. Co-Authored-By: Claude Sonnet 4.6 --- backend/app/api/knowledge_base_routes.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/backend/app/api/knowledge_base_routes.py b/backend/app/api/knowledge_base_routes.py index e832e95..336ef34 100644 --- a/backend/app/api/knowledge_base_routes.py +++ b/backend/app/api/knowledge_base_routes.py @@ -2,7 +2,7 @@ import difflib import uuid -from fastapi import APIRouter, BackgroundTasks, Depends, HTTPException, UploadFile, File +from fastapi import APIRouter, BackgroundTasks, Depends, HTTPException, Request, UploadFile, File from sqlalchemy.ext.asyncio import AsyncSession from app.api.knowledge_base_schemas import ( @@ -220,12 +220,13 @@ async def delete_source_document( @kb_router.post("/{kb_id}/process", response_model=ProcessingJobResponse, status_code=201) async def trigger_processing( kb_id: uuid.UUID, + request: Request, background_tasks: BackgroundTasks, db: AsyncSession = Depends(get_db), user: dict = Depends(get_current_user), ): """Trigger the document processing pipeline for a knowledge base.""" - from app.main import knowledge_base_service as kb_service + kb_service = getattr(request.app.state, "knowledge_base_service", None) if kb_service is None: raise HTTPException( @@ -448,6 +449,7 @@ async def get_spec_diff( async def activate_spec_version( kb_id: uuid.UUID, version_id: uuid.UUID, + request: Request, db: AsyncSession = Depends(get_db), user: dict = Depends(get_current_user), ): @@ -460,7 +462,7 @@ async def activate_spec_version( # Invalidate reference docs cache kb = await repo.get_knowledge_base(kb_id) if kb: - from app.main import analysis_service + analysis_service = getattr(request.app.state, "analysis_service", None) if analysis_service: analysis_service.reference_docs.invalidate_cache(kb.agent_key)