Discord: GUILD_UPDATE and five other dispatches are unhandled #69

Closed
opened 2026-09-02 00:04:13 -04:00 by Salastil · 1 comment
Owner

Everything not matched falls into _ => {} at discord.rs:3156. The ones that matter:

  • GUILD_UPDATE — a server rename or icon change does not land until the next reconnect
  • GUILD_EMOJIS_UPDATE — the emoji picker goes stale
  • USER_UPDATE — your own name/avatar change is invisible
  • GUILD_MEMBER_ADD / GUILD_MEMBER_REMOVE — the member list drifts
  • MESSAGE_DELETE_BULK — a purge leaves every message on screen
  • MESSAGE_REACTION_REMOVE_ALL / REMOVE_EMOJI — cleared reactions stay

Done looks like: an arm for each, reusing the existing upsert_buffer_group, delete_message and roster helpers.

Everything not matched falls into `_ => {}` at `discord.rs:3156`. The ones that matter: - `GUILD_UPDATE` — a server rename or icon change does not land until the next reconnect - `GUILD_EMOJIS_UPDATE` — the emoji picker goes stale - `USER_UPDATE` — your own name/avatar change is invisible - `GUILD_MEMBER_ADD` / `GUILD_MEMBER_REMOVE` — the member list drifts - `MESSAGE_DELETE_BULK` — a purge leaves every message on screen - `MESSAGE_REACTION_REMOVE_ALL` / `REMOVE_EMOJI` — cleared reactions stay **Done looks like:** an arm for each, reusing the existing `upsert_buffer_group`, `delete_message` and roster helpers.
Salastil added the bug label 2026-09-03 13:11:27 -04:00
Author
Owner

Finished — all six, plus the two reaction-clearing ones.

  • GUILD_UPDATE and GUILD_EMOJIS_UPDATE re-register the guild, the same answer the role events already use, so a rename, a new icon or a changed emoji set lands without a reconnect.
  • USER_UPDATE writes our own display name and avatar — they are on every message we send and were invisible until a restart.
  • GUILD_MEMBER_ADD / GUILD_MEMBER_REMOVE re-ask for the member window, since it is a lazy view Discord only sends when asked, and only for a guild whose list is actually on screen.
  • MESSAGE_DELETE_BULK deletes every id in the purge; the per-message deletes are not sent, so a purge used to leave everything on screen.
  • MESSAGE_REACTION_REMOVE_ALL and MESSAGE_REACTION_REMOVE_EMOJI clear reactions wholesale, for the same reason — the per-user removals that would have cleared them never arrive.

The last two needed set_reactions in the store, since everything until now was per-user add/remove.

nobilis 6403192

Finished — all six, plus the two reaction-clearing ones. - `GUILD_UPDATE` and `GUILD_EMOJIS_UPDATE` re-register the guild, the same answer the role events already use, so a rename, a new icon or a changed emoji set lands without a reconnect. - `USER_UPDATE` writes our own display name and avatar — they are on every message we send and were invisible until a restart. - `GUILD_MEMBER_ADD` / `GUILD_MEMBER_REMOVE` re-ask for the member window, since it is a lazy view Discord only sends when asked, and only for a guild whose list is actually on screen. - `MESSAGE_DELETE_BULK` deletes every id in the purge; the per-message deletes are not sent, so a purge used to leave everything on screen. - `MESSAGE_REACTION_REMOVE_ALL` and `MESSAGE_REACTION_REMOVE_EMOJI` clear reactions wholesale, for the same reason — the per-user removals that would have cleared them never arrive. The last two needed `set_reactions` in the store, since everything until now was per-user add/remove. nobilis 6403192
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Salastil/moho#69