diff --git a/tux/cogs/services/tty_roles.py b/tux/cogs/services/tty_roles.py index 198f8d49..7b34019a 100644 --- a/tux/cogs/services/tty_roles.py +++ b/tux/cogs/services/tty_roles.py @@ -100,6 +100,13 @@ async def try_assign_role(member: discord.Member, role: discord.Role) -> None: await discord.utils.sleep_until(datetime.datetime.now(datetime.UTC) + datetime.timedelta(seconds=5)) await member.add_roles(role) + except discord.NotFound as error: + # check if the member left the server + if member.guild.get_member(member.id) is None: + logger.info(f"Member {member} left or got kicked by the server before the role could be assigned.") + return + logger.error(f"Failed to assign role {role.name} to {member}: {error}") + except Exception as error: logger.error(f"Failed to assign role {role.name} to {member}: {error}")