fix(discord): handle missing guild/channel data in link resolution

Add null checks for guild.id and guild.name when resolving Discord
entities. This prevents TypeError when processing invite links for
servers/channels the bot doesn't have cached.

Fixes #6606
This commit is contained in:
Clawdbot
2026-02-02 01:08:14 +00:00
committed by Shadow
parent 3c00a9e330
commit 42bfcd9c30
3 changed files with 26 additions and 14 deletions

View File

@@ -62,16 +62,21 @@ function parseDiscordUserInput(raw: string): {
}
async function listGuilds(token: string, fetcher: typeof fetch): Promise<DiscordGuildSummary[]> {
const raw = await fetchDiscord<Array<{ id: string; name: string }>>(
const raw = await fetchDiscord<Array<{ id?: string; name?: string }>>(
"/users/@me/guilds",
token,
fetcher,
);
return raw.map((guild) => ({
id: guild.id,
name: guild.name,
slug: normalizeDiscordSlug(guild.name),
}));
return raw
.filter(
(guild): guild is { id: string; name: string } =>
typeof guild.id === "string" && typeof guild.name === "string",
)
.map((guild) => ({
id: guild.id,
name: guild.name,
slug: normalizeDiscordSlug(guild.name),
}));
}
function scoreDiscordMember(member: DiscordMember, query: string): number {