diff --git a/src/api/controllers/roles.ts b/src/api/controllers/roles.ts index 3d4f11692..69f1c2b43 100644 --- a/src/api/controllers/roles.ts +++ b/src/api/controllers/roles.ts @@ -27,8 +27,9 @@ export async function handleInternalGuildRoleDelete(data: DiscordPayload) { if (!guild) return; const cachedRole = guild.roles.get(payload.role_id)!; + if (cachedRole) eventHandlers.roleDelete?.(guild, cachedRole); + guild.roles.delete(payload.role_id); - eventHandlers.roleDelete?.(guild, cachedRole); // For bots without GUILD_MEMBERS member.roles is never updated breaking permissions checking. cacheHandlers.forEach("members", (member) => {