From fef12743a7ce7bf2d184c9e003cb4e1d4dfe9402 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hartmut=20N=C3=B6renberg?= Date: Fri, 6 Mar 2026 21:09:14 +0100 Subject: [PATCH] =?UTF-8?q?fix(K):=20asset=20library=20catalog=20refresh?= =?UTF-8?q?=20=E2=80=94=20fix=20task=20binding=20and=20model=20imports?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - fix(tasks): @shared_task → @celery_app.task so task uses configured redis://redis broker (@shared_task without explicit app bound to default app → localhost:6379 → Connection refused) - fix(tasks): import app.models before DB access so SQLAlchemy can resolve Material.creator → User relationship (was: InvalidRequestError: 'User' failed to locate a name) Verified: catalog refresh now finds and stores 35 materials from uploaded .blend file. Co-Authored-By: Claude Sonnet 4.6 --- backend/app/domains/materials/tasks.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/backend/app/domains/materials/tasks.py b/backend/app/domains/materials/tasks.py index d3df5b1..80c6d35 100644 --- a/backend/app/domains/materials/tasks.py +++ b/backend/app/domains/materials/tasks.py @@ -8,7 +8,7 @@ import subprocess import uuid from pathlib import Path -from celery import shared_task +from app.tasks.celery_app import celery_app logger = logging.getLogger(__name__) @@ -16,7 +16,7 @@ logger = logging.getLogger(__name__) CATALOG_SCRIPT = Path(os.environ.get("RENDER_SCRIPTS_DIR", "/render-scripts")) / "catalog_assets.py" -@shared_task( +@celery_app.task( name="app.domains.materials.tasks.refresh_asset_library_catalog", queue="thumbnail_rendering", bind=True, @@ -30,6 +30,7 @@ def refresh_asset_library_catalog(self, asset_library_id: str) -> None: """ from sqlalchemy import create_engine from sqlalchemy.orm import Session + import app.models # noqa: F401 — registers all SQLAlchemy models so relationships resolve from app.domains.materials.models import AssetLibrary from app.config import settings