From d2d01aaea7eb9fe9b290587976206ca4b5518300 Mon Sep 17 00:00:00 2001 From: michael Date: Thu, 8 Jan 2026 10:27:26 -0600 Subject: [PATCH] Fix campaign update by re-fetching after flush The previous refresh() call only reloaded relationships, not scalar attributes like updated_at. Re-fetching via get_by_id ensures all attributes and relationships are properly loaded. Co-Authored-By: Claude Opus 4.5 --- backend/app/repositories/campaign_repository.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/backend/app/repositories/campaign_repository.py b/backend/app/repositories/campaign_repository.py index 4401db3..d1654ab 100755 --- a/backend/app/repositories/campaign_repository.py +++ b/backend/app/repositories/campaign_repository.py @@ -90,9 +90,8 @@ class CampaignRepository: setattr(campaign, key, value) await self.session.flush() - # Refresh to reload expired attributes and relationships after flush - await self.session.refresh(campaign, ["agency", "proofs"]) - return campaign + # Re-fetch to get fresh data with eager-loaded relationships + return await self.get_by_id(campaign_id) async def delete(self, campaign_id: uuid.UUID) -> bool: """Delete a campaign and all related proofs."""