Forum Discussion
Copilot Studio bot in Teams occasionally sends duplicate responses
I’m using a Copilot Studio bot deployed in Microsoft Teams, and I’m experiencing an intermittent issue where a single user message occasionally triggers two identical responses.
This does not happen consistently, and there is no intentional duplicate logic in my bot design.
I’m not sure whether this is caused by duplicate message delivery from Teams (e.g., retries or at-least-once delivery behavior), or something within Copilot Studio itself.
Is this a known behavior for the Teams channel or Copilot Studio?
Are there any recommended ways to detect or prevent duplicate responses at the bot level?
Any insights or best practices would be appreciated.
2 Replies
Hi Leo9,
Just following up to check if everything is working now. Let me know if you still need any help - I’m happy to assist.
If the issue has been resolved, please consider marking the answer as solved so it can help others with a similar question.
Thanks, and have a great day!
Hi Leo9,
I’ve run into this with Copilot Studio in Teams too. In most cases it’s not Teams duplicating the user message, but the agent generating two answers for the same turn (for example, main + connected agent both replying, or multiple topics/knowledge sources firing at once).
What’s helped me reduce this in my own bots:
- Tighten topic design:
Avoid overlapping topics that all send full responses for the same kind of question. Make one topic the “owner” of the user‑facing answer, and have others return data or signals only. - Be explicit about who speaks:
If you’re using connected agents, choose whether the main or the connected agent is responsible for the user‑visible reply and design the other one to behave more like a backend tool. - Use the “AI response generated” pattern:
When a topic has already given the user a complete answer (for example after calling an API), use the pattern that prevents Copilot from appending a second, generic LLM answer for that same turn. - Add light de‑duplication with variables:
- Track the last question/answer pair (e.g., lastUserMessage, lastAnswerHash) and, if the same combo shows up again within a short time window, skip sending it a second time.
- Add flags like hasAlreadyAnsweredOrderStatus inside specific topics so they only send a user‑facing message once per turn, even if they get re‑entered.
- Temporarily instrument topics while debugging:
Drop a small debug message or set a variable at the start of each candidate topic so you can see which one actually fired when the duplicate occurs. Once you’re confident, you can remove or hide those debug messages.
If you share a screenshot of your topics and any connected agents, I can help you design a very specific guard pattern for your scenario.
✅ If this helped solve your issue, please Accept as Solution so others can find it quickly.
❤️ If it didn’t fully solve it but was still useful, please click “Yes” on “Was this reply helpful?” or leave a Like :).
🏷️ For follow-ups @Sajeda_Sultana
- Tighten topic design: