Azure / Azure/communication-ui-library
All Teams meeting chat operations return 403 Forbidden for ACS users since ~Aug 24 2026 (calls work; Teams web anonymous can chat in same meeting)
- Dominant language
- TypeScript
- Stars
- 204
- Forks
- 84
- Avg merge
- 1d 12h
- Merged PRs (30d)
- 4
Description
**Describe the bug; what happened?**
Since approximately Aug 24, 2026, every ACS (anonymous interop) user joining Microsoft Teams meetings in our tenant receives 403 Forbidden on ALL meeting chat operations — `ChatThreadClient.sendMessage` and `sendTypingNotification` both fail with:
```
CommunicationError: {
"Code": "Forbidden",
"Message": "The initiator doesn't have the permission to perform the requested operation."
}
```
— and the user receives no incoming thread messages. Calling, roster, screen share, and reactions all work normally. The CallWithChatComposite shows "You are no longer in this chat thread" immediately after joining. No changes were made on our side (no deploys, no tenant/policy changes).
**Key discriminator:** in the SAME meeting, an anonymous participant joining via the **Teams web client** (display name only, unverified — no email OTP) can send meeting chat messages normally. The failure exists only on the ACS interop path.
**What are the steps to reproduce the issue?**
1. Create a Teams meeting (either via Graph app-created `onlineMeetings` or by a human organizer in the Teams desktop app with default options — both reproduce).
2. Mint an ACS identity + token (`voip`, `chat` scopes) and join the meeting with `createAzureCommunicationCallWithChatAdapter` + `CallWithChatComposite` (minimal quickstart, no custom code).
3. Wait for call state `Connected` (fully admitted).
4. Send a chat message.
Result: `POST /chat/threads/19%3Ameeting_...%40thread.v2/messages` returns 403 (on both `api-version=2024-06-05-preview` and `2025-03-15`).
**What behavior did you expect?**
ACS interop users can send/receive meeting chat while in the call, per the documented Teams external-user capabilities.
**If applicable, provide screenshots:**
Sample failing request: `Ms-Cv: IGMF4wkAI0+MIaxuFQ0kJw.0`, 2026-08-31 16:04:38 UTC, resource in Canada region. Happy to share more Ms-Cv values and a live repro meeting privately.
**In what environment did you see the issue?**
- `@azure/communication-react`: 1.32.0
- `@azure/communication-calling`: 1.42.1
- `@azure/communication-chat`: 1.6.0-beta.7
- OS & Device: Windows 11 PC (also reproduced tenant-wide across devices/users in production)
- Browser: Google Chrome (latest); production users on multiple browsers
**Is there any additional information?**
Tenant configuration verified as Global Admin, all permissive:
- `MeetingChatEnabledType = Enabled` on ALL `CsTeamsMeetingPolicy` instances
- ACS federation configured: `EnableAcsUsers = True`, resource immutable ID present in `AllowedAcsResources`
- `EnableAcsFederationAccess = True` on all external access policies
- `BlockedAnonymousJoinClientTypes` empty
- `EnableExternalAccessRestrictionsForChatParticipants` / `EnableMutualFederationForChatParticipants` both False
- per-meeting `allowMeetingChat = enabled`
A test policy with `AnonymousUserAuthenticationMethod = None` assigned to the organizer did not help (a fresh meeting created after assignment still fails). This is NOT the known join-timing issue — the failure persists for the entire meeting while `Connected`.
A Severity-A Azure support case is open in parallel. Also posted on Microsoft Q&A: https://learn.microsoft.com/en-us/answers/questions/5990218/
Contributor guide
Research direction
Start with createAzureCommunicationCallWithChatAdapter, CallWithChatComposite, and ChatThreadClient using the minimal quickstart configuration described in the issue. Reproduce the 403 responses for sendMessage and sendTypingNotification while the call remains Connected, and compare the ACS behavior with an anonymous Teams web participant. Done requires identifying and documenting the cause or an actionable fix; the issue does not name a repository file or test.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- azure, react, typescript
- Domain
- api, backend
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100