Forum Discussion

deepak_nayak's avatar
deepak_nayak
Copper Contributor
Mar 27, 2026

Bot not receiving message events in shared channels (RSC)

Hi folks,

Running into an issue with a bot in Microsoft Teams shared channels.

I've configured RSC permissions to listen for new messages. This works as expected in standard channels - I receive events for every new message.

However, in shared channels, the behavior is different:

  • I only receive events when the bot is explicitly tagged
  • Regular messages in the channel don’t trigger any events

Permissions currently granted:

  • Channel.ReadBasic.All (Application)
  • ChannelMember.Read.All (Application)
  • ChannelMessage.Read.All (Application)

Has anyone faced this with shared channels? Is this expected behavior or am I missing something in setup?

Thanks!

5 Replies

  • Hello deepak_nayak,

    Currently, there are no real-time change notifications available for shared channel messages, as neither RSC nor Graph subscriptions provide this functionality.

    Recommended approach: Poll for updates using Graph delta queries every 60 seconds:

    GET /teams/{id}/channels/{id}/messages/delta

    You can combine this with InvalidUsername processing to support real-time interactions. At this time, no event-based solution is available.

    • Yash-ClearFeed's avatar
      Yash-ClearFeed
      Copper Contributor

      Nivedipa-MSFT​ Thanks for confirming the polling approach using the delta API.

      Could you also share if there are any defined or recommended rate limits for /messages/delta and /replies APIs? Since we may need to poll across a large number of channels, any guidance on safe polling intervals or throughput (per app/tenant) would be really helpful to avoid throttling.
      Thanks!

      • Nivedipa-MSFT's avatar
        Nivedipa-MSFT
        Icon for Microsoft rankMicrosoft

        Hello Yash-ClearFeed,

        Teams message APIs (/messages/delta, /replies) share a limit of 60 requests/min per app per tenant.

        • Under 60 channels: Polling every 60s is feasible
        • 60+ channels: Use Graph change notifications (webhooks) as the primary method, with delta queries as periodic catch-up
        • Always handle HTTP 429 with Retry-After and exponential backoff
  • Deepak, to make the app work in shared channels, you need to do the following:
    1. Update the manifest to declare support for shared channels. Instructions can be found here: 

    https://learn.microsoft.com/en-us/microsoftteams/platform/build-apps-for-shared-private-channels?tabs=tabs%2Cexternal-users%2Csharedchannel#apps-with-no-dependence-on-specified-parameters:~:text=Add%20supportsChannelFeatures%3A%20tier1%20to%20your%20app%20manifest

     

    2. Enable the app in the shared channel once the app has been installed in the parent team.

    Add teamsApp - Microsoft Graph beta | Microsoft Learn

    • deepak_nayak's avatar
      deepak_nayak
      Copper Contributor

      Thanks - I’ve already done both of those:

      1. Updated the manifest with supportsChannelFeatures: tier1
      2. Added/enabled the app in the shared channel after installing it in the host team

      The issue I’m seeing is different: even after setup, I don’t receive regular message events in shared channels - only messages where the bot is explicitly @mentioned.

      From the shared/private channels documentation, it seems message change notifications for /channels/{id}/messages are not supported for shared channels with RSC, and the suggested fallback is on-demand reads.

      Can you confirm if this is an expected limitation?

      Also, what is the recommended pattern for near real-time processing in shared channels in this case? For example:

      • Is periodic polling via Graph the only supported approach?
      • Are there any event-based alternatives or roadmap plans for this?

      Trying to understand how others are building reliable message ingestion for shared channels.