web
You’re offline. This is a read only version of the page.
close
Skip to main content

Announcements

News and Announcements icon
Community site session details

Community site session details

Session Id :
Power Platform Community / Forums / Copilot Studio / Dynamic language switc...
Copilot Studio
Suggested Answer

Dynamic language switching works in Copilot Studio test, but not reliably in Copilot Chat

(0) ShareShare
ReportReport
Posted on by 9

Hello everyone,

I’m running into an issue with multilingual agents in Microsoft Copilot Studio and I’m trying to determine whether this is a known limitation or if there are any solutions for this.

Context

 

 

Custom topic added following: https://learn.microsoft.com/en-us/microsoft-copilot-studio/multilingual#make-an-agent-switch-to-another-language 

 

What works as expected

In the Copilot Studio test environment:

  • The correct topic flow is triggered consistently.

  • Language detection works reliably.

  • The agent responds in the expected language.

  • Switching languages multiple times within the same conversation works without issues.

 

The issue

After publishing the agent to Microsoft Copilot Chat, the behavior changes:

When mixing multiple languages within the same session, the agent:

  • When I ask a question in English, the agent sometimes responds in Dutch.

  • The response language does not always match the user’s input language.

  • Unexpectedly falls back to the secondary language? (Dutch for some reason?)

 

The agents are published from the Copilot DEV environment.

Any insights or experiences would be greatly appreciated.

Thanks in advance!
I have the same question (0)
  • Suggested answer
    Beyond The Platforms Profile Picture
    213 on at

    Hi there, 

    This is a known behavioral difference between the Studio test canvas and the published Copilot Chat channel.

    The most likely cause: Copilot Chat injects the user's Microsoft 365 profile language as session-level locale context. If the user has Dutch set as their M365 language, this can override your dynamic switching topic even when they type in English.

    Quick things to try:


    1. Test with a user whose M365 language is English (US) — if the problem disappears, the M365 locale injection is your culprit.

    2. Base language detection explicitly on System.Activity.Text (the actual typed message) rather than relying on the built-in detection node, which can pick up channel-level locale instead.

    3. Re-evaluate the language variable on every turn, not just when the topic is first triggered — with Generative Orchestration, topics can be re-entered unexpectedly.

    4. Test on the Web Chat channel to confirm whether the issue is Copilot Chat-specific.
    Hope this helps!
    Paolo


    Did this solve your issue? → Accept as Solution
    👍 Partially helpful? → Click "Yes" on "Was this reply helpful?" or drop a Like!


    Want more tips on Power Platform & AI? Follow me here:

    🔗 LinkedIn: https://www.linkedin.com/in/paoloasnaghi/
    ▶️ YouTube: https://www.youtube.com/@BeyondThePlatforms
    📸 Instagram: https://www.instagram.com/beyond_the_platforms/
    🌐 Website: https://www.beyondtheplatforms.com/


     


       
  • AK-06020900-0 Profile Picture
    9 on at
     
    Thanks for you quick reply!
     

    1) I will definitely try that — I’m just waiting for my test account to be ready.

    2) I think this is already handled by the flow I mentioned earlier. If not, could you indicate exactly which part of the flow should be changed?

    3) I’m not sure I fully understand what you mean here. How do you see this being implemented exactly? Should it be within the same topic as the “Dynamic language switching,” or would you recommend creating a separate topic for it?

    4) I’ve been testing both in the web interface and in the downloaded Windows version, and the issue occurs in both.

     

    The agent will be deployed in a country where users commonly speak Dutch, French, and English.

    To my knowledge, all the Microsoft 365 accounts are configured with Dutch as the default language.

    Because of this, we need reliable switching between languages during the conversation.

    However, if this issue is strictly related to a single conversation session, another possible workaround could be to advise users to start a new conversation session when they switch languages, to avoid mixing languages within one chat.

    Could you please confirm whether starting a new conversation would help in this case, and whether the current setup is sufficient for that scenario? Or would the “Dynamic language switching” topic no longer be necessary in that case?

    Thanks in advance!

  • Suggested answer
    Beyond The Platforms Profile Picture
    213 on at
    Hi,
    Thanks for the detailed follow-up!
     
    On point 2 — base detection on System.Activity.Text:
    If your flow already reads `System.Activity.Text` to detect the language, that's great. The key question is: does this detection run *only once* at conversation start, or does it re-run on *every* user message? If it only runs once, the variable will stay stuck on the first detected language even when the user switches. Could you confirm this? That would help narrow things down.
     
    On point 3 — re-evaluating language on every turn:
    Here's a concrete way to implement this. In Copilot Studio, you can use the **"On Unknown Intent"** system topic (or a custom global topic set to intercept all messages) to run a small language check at the start of every turn:
    - Add a **Set Variable** node that reads `System.Activity.Text`.
    - Add a **Condition** to detect the language of that text (e.g. via a Power Automate flow or a regex/keyword check for your three languages).
    - If the detected language differs from the current language variable, update it.
    This can be a separate lightweight topic that runs before your main topics, or you can embed this logic at the top of your existing "Dynamic language switching" topic if it's already structured as a global one. I'd recommend a separate topic to keep things clean.
     
    On point 4 — web interface and Windows app both affected:
    This is actually useful information. Since both the browser and desktop versions of Copilot Chat show the same behavior, it confirms the issue is tied to the M365 session context (which both clients share), not a rendering quirk. This makes it even more likely that the Dutch M365 account language is being injected as the session locale. Test #1 (with an English M365 account) becomes the most important next step.
     
    In general
    Yes, starting a new conversation *would* reset the session state completely, including any locale context injected by the M365 profile. So for purely single-language conversations, this would work reliably.
    That said, I wouldn't recommend it as your primary solution for this deployment. Given that your users naturally speak Dutch, French, and English — and may switch within a single chat — a workaround that asks users to restart the conversation every time they change language would be frustrating and impractical. The "Dynamic language switching" topic remains necessary.
    The new-conversation advice is worth documenting as a *fallback* for users who experience unexpected language behavior, but the real fix is getting per-turn re-evaluation working correctly in the published channel.
    Looking forward to hearing your test results!
     
    Hope this helps!
    Paolo


    Did this solve your issue? → Accept as Solution
    👍 Partially helpful? → Click "Yes" on "Was this reply helpful?" or drop a Like!


    Want more tips on Power Platform & AI? Follow me here:

    🔗 LinkedIn: https://www.linkedin.com/in/paoloasnaghi/
    ▶️ YouTube: https://www.youtube.com/@BeyondThePlatforms
    📸 Instagram: https://www.instagram.com/beyond_the_platforms/
    🌐 Website: https://www.beyondtheplatforms.com/


     

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Introducing the 2026 Season 1 community Super Users

Congratulations to our 2026 Super Users!

Kudos to our 2025 Community Spotlight Honorees

Congratulations to our 2025 community superstars!

Congratulations to the April Top 10 Community Leaders!

These are the community rock stars!

Leaderboard > Copilot Studio

#1
Valantis Profile Picture

Valantis 634

#2
Vish WR Profile Picture

Vish WR 315

#3
Haque Profile Picture

Haque 219

Last 30 days Overall leaderboard