Share via

Microsoft Teams bot stops receiving events after updating app manifest with tab support until the app is reinstalled

Akshay Babar 20 Reputation points
2026-03-06T11:52:40.0366667+00:00

We have an existing Microsoft Teams bot application that is already installed in a Teams channel (team scope) and is working correctly.

Recently, we added tab support to the existing bot by updating the Teams app manifest and increasing the manifest version. The updated app package was uploaded to the Microsoft Teams Admin Center.

After updating the app package:

The existing bot installation in the Teams channel stopped sending events to the bot endpoint.

The bot does not receive conversation events or messages.

When we manually remove and reinstall the app in the channel, the bot starts working again and events are received normally.

We want to understand why updating the app manifest causes the existing bot installation to stop sending events and why reinstallation is required.

Environment

  • Platform: Microsoft Teams
  • Bot Framework
  • App distributed via Teams Admin Center
  • App type: Teams Bot with Tab support
  • Hosting: Azure (Bot Service / API endpoint)

Steps to Reproduce:

  1. Install the Teams bot in a Teams channel.
  2. Verify that the bot receives events normally.
  3. Update the Teams app manifest by adding configurable tab support.
  4. Increase the app version and upload the new package in Teams Admin Center.
  5. Observe that the existing bot installation stops receiving events.
  6. Remove and reinstall the app in the channel.
  7. After reinstalling, the bot starts receiving events again.

Could you please confirm whether this behavior is expected when updating the Teams app manifest with additional capabilities?

Also, please provide a response as soon as possible, as this issue is currently impacting our testing and deployment process.

Below is our manifest. Json

{
  "$schema": "https://developer.microsoft.com/en-us/json-schemas/teams/v1.22/MicrosoftTeams.schema.json",
  "manifestVersion": "1.22",
  "version": "1.11.6",
  "id": "<APP_ID>",
  "developer": {
    "name": "<COMPANY_NAME>",
    "websiteUrl": "<COMPANY_WEBSITE>",
    "privacyUrl": "<PRIVACY_POLICY_URL>",
    "termsOfUseUrl": "<TERMS_URL>"
  },
  "name": {
    "short": "<NAME>",
    "full": "<NAME>"
  },
  "description": {
    "short": "<DESCRIPION>",
    "full": "<DESCRIPION>"
  },
  "icons": {
    "outline": "outline.png",
    "color": "color.png"
  },
  "accentColor": "#661DC2",
  "configurableTabs": [
    {
      "configurationUrl": "https://<TAB_DOMAIN>/?env=prod",
      "canUpdateConfiguration": true,
      "scopes": [
        "team"
      ],
      "context": [
        "channelTab"
      ]
    }
  ],
  "staticTabs": [],
  "bots": [
    {
      "botId": "<BOT_APP_ID>",
      "isNotificationOnly": false,
      "supportsFiles": false,
      "scopes": [
        "personal",
        "team",
        "groupChat"
      ],
      "commandLists": [
        {
          "scopes": [
            "personal",
            "team",
            "groupChat"
          ],
          "commands": [
            {
              "title": "loops",
              "description": "Invoke workflow/actions"
            },
            {
              "title": "ask",
              "description": "Ask bot questions"
            }
          ]
        }
      ]
    }
  ],
  "composeExtensions": [],
  "permissions": [
    "identity",
    "messageTeamMembers"
  ],
  "validDomains": [
    "token.botframework.com",
    "<BOT_SERVICE_DOMAIN>",
    "<TAB_DOMAIN>"
  ],
  "webApplicationInfo": {
    "id": "<BOT_APP_ID>",
    "resource": "api://<BOT_APP_ID>"
  },
  "authorization": {
    "permissions": {
      "resourceSpecific": [
        {
          "name": "ChannelMessage.Read.Group",
          "type": "Application"
        },
        {
          "name": "Member.Read.Group",
          "type": "Application"
        },
        {
          "name": "Team.Read.Group",
          "type": "Application"
        },
        {
          "name": "TeamsActivity.Send.Group",
          "type": "Application"
        },
        {
          "name": "TeamsTab.Create.Group",
          "type": "Application"
        },
        {
          "name": "TeamsTab.Read.Group",
          "type": "Application"
        },
        {
          "name": "TeamsTab.ReadWrite.Group",
          "type": "Application"
        }
      ]
    }
  }
}
Microsoft Teams | Development
Microsoft Teams | Development

Building, integrating, or customizing apps and workflows within Microsoft Teams using developer tools and APIs

0 comments No comments
{count} votes

1 answer

Sort by: Most helpful
  1. Kudos-Ng 14,515 Reputation points Microsoft External Staff Moderator
    2026-03-06T14:10:26.1366667+00:00

    Hi Akshay Babar,

    Thank you for posting your question in the Microsoft Q&A forum.

    After reviewing the official Teams developer documentation and similar community reports regarding manifest updates, it appears that this behavior is expected by design in Microsoft Teams.

    While it can certainly be confusing the first time you encounter it, it perfectly aligns with how Teams handles Capability Updates and Re-consent flows for apps.

    When you incremented the manifest version and added a new capability (the configurableTabs array), the existing app installation in the Teams channel entered a "Pending Update" state.

    According to Microsoft's app update and permission framework, adding a Tab constitutes a change in app capabilities. Because your new tab requests specific contexts (like channelTab), Teams' security boundaries require strict consent. Therefore, Teams pauses routing conversation events to your bot endpoint to prevent state mismatches until the new manifest is explicitly accepted and "Re-consented" within that specific channel.

    When you remove and reinstall the app, you bypass the "update" flow entirely. A fresh installation triggers a new installationUpdate event to your bot and forces the user to consent to the entire manifest (Bot + Tab) upfront, putting the app directly into a fully "Active" state where event routing resumes immediately.

    Once you upload the new package to the Teams Admin Center, go to the Teams Channel where the bot is installed. Users (or Team Owners) should see an "Update" button/prompt next to the app in the Manage Team > Apps list. Clicking "Update" manually triggers the re-consent flow for the new Tab capability, and the Bot will legally resume receiving events.


    If the answer is helpful, please click "Accept Answer" and kindly upvote it. If you have extra questions about this answer, please click "Comment".         

    Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.


Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.