Skip to content

[Bug]: msteams channel allowlist never works — messages always dropped regardless of configuration due to "groupAllowFrom" problem #95737

Description

@ExR90

Bug type

Behavior bug (incorrect output/state without crash)

Beta release blocker

No

Summary

Related to #41390 but a distinct second bug affecting groupAllowFrom matching, not just the teams config structure.

Steps to reproduce

  1. Configure channels.msteams.groupPolicy: "allowlist"
  2. Add channel conversation ID to groupAllowFrom e.g. 19:[email protected]
  3. Send a message in that channel
  4. Observe: message dropped with matchKey=none matchSource=none

Expected behavior

Message is accepted and dispatched to agent when the base conversation ID matches a groupAllowFrom entry, regardless of whether a ;messageid= suffix is present in the runtime conversation ID, and regardless of whether the thread format is @thread.tacv2 or @thread.skype. The @thread.skype format is any Team that wasn't recently created, and you cannot update that thread ID without deleting and recreating the team and losing all history (not practical). Needs to support both ID formats.

Actual behavior

Message is dropped. Bot Framework appends ;messageid=XXXXXXXXX to the conversation ID at runtime (e.g. 19:[email protected];messageid=1782XXXXXXX4) but the allowlist comparison does not strip this suffix, so the match always fails.

OpenClaw version

2026.6.9

Operating system

Debian 13 trixie x86_64

Install method

npm global

Model

z-ai/glm-5.2

Provider / routing chain

openrouter

Additional provider/model setup details

No response

Logs, screenshots, and evidence

{"sender":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","label":"Joe Blow","allowlistMatch":"matchKey=none matchSource=none"} dropping group message (not in groupAllowFrom)

Configured groupAllowFrom: 19:[email protected]
Runtime conversation ID: 19:[email protected];messageid=1782122147084

Impact and severity

Affected: all msteams users using groupPolicy: allowlist with groupAllowFrom
Severity: High -- groupAllowFrom is completely non-functional, forcing groupPolicy: open as the only workaround
Frequency: 100% reproduction
Consequence: No channel-scoped access control possible. Additional impact on legacy @thread.skype teams where requireMention: false also fails -- these teams cannot be recreated or migrated to @thread.tacv2, leaving users with no path to allowlisting or mention-free operation on any legacy team.

Additional information

Tested on both @thread.tacv2 (new teams) and @thread.skype (legacy teams). Both fail identically. The fix should strip the ;messageid=... suffix from the inbound conversation ID before comparing against groupAllowFrom entries. Related open PR for #41390 may or may not cover this depending on where the match comparison happens.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Normal backlog priority with limited blast radius.bugSomething isn't workingbug:behaviorIncorrect behavior without a crashclawsweeper:linked-pr-openClawSweeper found an open linked pull request for this issue.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.impact:message-lossChannel message delivery can be lost, duplicated, or misrouted.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions