diff --git a/changelog.d/mod/2993.misc.rst b/changelog.d/mod/2993.misc.rst new file mode 100644 index 000000000..ebf091f2d --- /dev/null +++ b/changelog.d/mod/2993.misc.rst @@ -0,0 +1 @@ +More descriptive tempban unban failure logging \ No newline at end of file diff --git a/redbot/cogs/mod/kickban.py b/redbot/cogs/mod/kickban.py index beabc1f05..417e40eff 100644 --- a/redbot/cogs/mod/kickban.py +++ b/redbot/cogs/mod/kickban.py @@ -127,16 +127,20 @@ class KickBanMixin(MixinMeta): unban_time = datetime.utcfromtimestamp( await self.settings.member(member(uid, guild)).banned_until() ) - now = datetime.utcnow() - if now > unban_time: # Time to unban the user + if datetime.utcnow() > unban_time: # Time to unban the user user = await self.bot.fetch_user(uid) queue_entry = (guild.id, user.id) try: await guild.unban(user, reason=_("Tempban finished")) guild_tempbans.remove(uid) - except discord.Forbidden: - log.info("Failed to unban member due to permissions") except discord.HTTPException as e: + # 50013: Missing permissions error code or 403: Forbidden status + if e.code == 50013 or e.status == 403: + log.info( + f"Failed to unban {user}({user.id}) user from " + f"{guild.name}({guild.id}) guild due to permissions" + ) + break # skip the rest of this guild log.info(f"Failed to unban member: error code: {e.code}") await asyncio.sleep(60)