Building, integrating, or customizing apps and workflows within Microsoft Teams using developer tools and APIs
Hi @Yifan Shao
Please note that we're not Microsoft support, this is a user-to-user support forum. Moderators here don’t have backend access to Microsoft systems, so we can only provide technical guidance based on the public resources and experience.
What you are observing is consistent with how Teams handles bot identity, app installation, and update flows, although Microsoft does not document every aspect of this migration scenario very clearly.
Regarding your question:
1.Does the old bot remain installed/authorized after a botId change?
In a Teams Store staged rollout, existing users may continue to be reachable through the old bot identity after the botId change. Based on the behavior you described, existing conversation references and installation state associated with the old bot appear to remain valid during the rollout period.
As a result, the old bot may continue to send proactive notifications until users transition to the updated app experience or the old bot is retired. This would explain why users can continue receiving messages from the old bot even after a new manifest version has been published.
2.Can the new bot proactively message users before they click "Update"?
Based on your observations, Teams appears to allow the new bot identity to establish proactive conversations with users even before they manually click the Update banner.
This aligns with the documented requirement that proactive messaging depends on the app being installed for the user. However, Microsoft does not clearly document this specific bot migration scenario, so it is difficult to state the exact internal behavior with certainty.
3.Why is Teams Admin Center behavior different?
The most likely explanation is that TAC app updates and Store staged rollouts use different installation-update paths. The difference is due to how the update is applied:
Teams Admin Center (tenant upload)
- Admin-driven update
- Appears to replace or override the existing installation more directly
- Old bot stops receiving messages
Teams Store staged rollout
- Update is delivered through the Teams client update process.
- Existing users may continue to be reachable through both the old and new bot identities during the transition period.
- Old and new bot identities can temporarily coexist
This is consistent with the fact that proactive messaging is not strictly tied to the visible client version alone.
You effectively have:
- Old bot still holding valid conversation references
- New bot already able to create new conversations
If your backend sends the same notification through both App IDs, Teams delivers both notifications. The fact that the user has not clicked Update does not necessarily invalidate either path.
4.Recommended migration approach
There does not appear to be a documented platform mechanism that guarantees automatic replacement of the old bot identity during a Teams Store staged rollout. As a result, coexistence may need to be handled at the application level.
The safest migration pattern is:
- Release the manifest with the new botId, keep the old bot operational.
- Do not dual-send notifications.
- Track which bot receives traffic from each user.
- Once a user is observed on the new bot, mark them as migrated and send only through the new bot.
- Continue sending through the old bot only for users not yet migrated.
- After sufficient rollout time, stop sending through the old bot and remove the old ABS.
I hope this information is helpful.
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.