Skip to content

Discord: an @-mention of the app's own managed role is silently ignored #1609

Closed as duplicate

Description

@DoodleBears

Found during the long-run validation (#1593). The original report here ("channel mention is accepted by the Host but never reaches the bound Bot") was a misdiagnosis; the Host did not lose the message. The real cause is below.

What happens

Discord creates a managed role for every bot, with the same name as the bot. When a Human types @ in a channel, the autocomplete lists both the bot user and that role, side by side, and both render as the same blue mention once sent.

If the Human picks the role, the IM Provider reports the event with mentionedAccount: false, because it only checks the native mentions array (user mentions). The Host then treats it as an ordinary channel message that does not address the Bot, and with no ordinary-text collection configured it records nothing. The Provider's received count still goes up and the Host returns accepted, so from the outside it looks like a dropped message, with no hint to the Human.

Evidence

  • A traced local Host on long-run-v2 (02e89793) with the Provider pinned at DoodleBears/dsh-im@1eee207c.
  • Role mention: event arrived with kind: group, mentionedAccount: false, nothing admitted.
  • Same channel, mention of the bot user picked from autocomplete (the entry with the APP tag): mentionedAccount: true, Inbox admission written, Bot replied.

Why it is this way

ADR-0128 deliberately does not infer direct addressing from role mentions, display names or @everyone, because an ordinary role can hold many members and a broad ping should not wake a Bot. The app's own managed role was not considered separately. It is unambiguous: Discord marks it with tags.bot_id, and only this bot holds it.

Proposed fix

In the Provider (DoodleBears/dsh-im, Discord external consumer):

  • Treat a mention of the role whose tags.bot_id equals the app's user id as a mention of the app (mentionedAccount: true).
  • Keep ignoring every other role mention and @everyone.
  • Add a test for both cases, then bump the Provider pin here and record a Discord re-verification.

Optional: when a Bot is reachable on Discord, say in the binding UI that Humans must mention the bot itself, until the fix ships.

Activity

  1. DoodleBears commented on Oct 13, 2026

    @DoodleBears
    ContributorAuthor

    Also reproduces on long-run-v2 (02e89793), with the IM Provider pinned at the same DoodleBears/dsh-im commit 1eee207c.

    After a fresh Host rebuild and restart, one channel @-mention of the bound app raised the provider's received count from 0 to 1 with no error. The Host wrote no session authorization, no held record and no Bot Inbox record for it, and the bound Bot stayed idle. Local DMs to two Bots through the Host were answered normally in the same run.


    Generated by Claude Code

  2. changed the title [-]Discord channel mention is accepted by the Host but never reaches the bound Bot[/-] [+]Discord: an @-mention of the app's own managed role is silently ignored[/+] on Oct 13, 2026
  3. DoodleBears commented on Oct 13, 2026

    @DoodleBears
    ContributorAuthor

    Root cause is tracked in #1615: the mention picked the app's same-name managed role, not the bot user. The Host did not lose the message. Closing this one as a duplicate.


    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    long-run-validationFound during the long-run multi-Bot validation

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions