diff --git a/app/services/remnawave_webhook_service.py b/app/services/remnawave_webhook_service.py index 9f9530b6..d987a3e3 100644 --- a/app/services/remnawave_webhook_service.py +++ b/app/services/remnawave_webhook_service.py @@ -994,6 +994,16 @@ class RemnaWaveWebhookService: async def _handle_user_deleted( self, db: AsyncSession, user: User, subscription: Subscription | None, data: dict ) -> None: + # Suppress webhook if this deletion was initiated by delete_user_account — + # prevents deadlock between the ongoing deletion transaction and this handler + if self._is_intentional_panel_deletion_event(data): + logger.info( + 'Webhook user.deleted suppressed — intentional panel deletion in progress', + user_id=user.id, + uuid=data.get('uuid'), + ) + return + user_id = user.id sub_id = subscription.id if subscription else None