From 47783aa2d758970cf5735e136208466591bcd449 Mon Sep 17 00:00:00 2001 From: Alex Kulikov Date: Sun, 8 Feb 2026 10:32:12 +0000 Subject: [PATCH] fix: handle error from upsert user --- src/db/db_client.py | 43 ++++++++++++++++++++++++------------------- 1 file changed, 24 insertions(+), 19 deletions(-) diff --git a/src/db/db_client.py b/src/db/db_client.py index baff241..a3bbf9b 100644 --- a/src/db/db_client.py +++ b/src/db/db_client.py @@ -282,27 +282,32 @@ def upsert_user_from_telegram( .first() ) - if user: - # Update existing user - if telegram_username: - # Normalize: remove @ if present - normalized = telegram_username.lstrip("@") - user.telegram_username = normalized - if team_member_id: + try: + if user: + # Update existing user + if telegram_username: + # Normalize: remove @ if present + normalized = telegram_username.lstrip("@") + user.telegram_username = normalized + if team_member_id: + user.team_member_id = team_member_id + user.updated_at = datetime.utcnow() + else: + # Create new user + user = User() + user.telegram_user_id = telegram_user_id + if telegram_username: + # Normalize: remove @ if present + normalized = telegram_username.lstrip("@") + user.telegram_username = normalized user.team_member_id = team_member_id - user.updated_at = datetime.utcnow() - else: - # Create new user - user = User() - user.telegram_user_id = telegram_user_id - if telegram_username: - # Normalize: remove @ if present - normalized = telegram_username.lstrip("@") - user.telegram_username = normalized - user.team_member_id = team_member_id - session.add(user) + session.add(user) - session.commit() + session.commit() + except Exception as e: + logger.warning("Failed to upsert user from telegram", exc_info=e) + session.rollback() + return None return user def link_user_to_team_member(self, user_id, team_member_id: str) -> Optional[User]: