Frequently asked questions

This section contains the frequently asked questions and the answers.

Adaptive Card Previewer

Why do we have to use a new extension in Visual Studio Code? Can’t this extension be integrated into Teams Toolkit for Visual Studio Code?

Adaptive Card Previewer is a standalone extension because it uses a closed-source package to render the Adaptive Cards to ensure consistent rendering logic with the Teams platform. Teams Toolkit is an open-source project and doesn't include dependencies on packages that third-party developers can't access.

Does this extension support all Adaptive Card features in the Teams platform?

No. There are several limitations that Adaptive Card Previewer extension doesn't support.

Will Visual Studio be integrated into Adaptive Card Previewer?

No, Adaptive Card Previewer is available in Visual Studio Code only.

App validation

How can I connect Microsoft Entra ID to an MPN account?

Follow the steps in the pages given here:

  1. Publisher verification overview - Microsoft Entra.
  2. Microsoft LearnMark an app as publisher verified - Microsoft Entra.
  3. Microsoft Learn Resolution - Connect Microsoft Entra ID to MPN settings.


How can I use Adaptive Cards with a bot so that the desktop app behavior is consistent between web and mobile apps?

For more information about using Adaptive Cards with a bot, see Work with Universal Actions for Adaptive Cards.

How can I remove specific messages from bot history? Is there a way to get the chat history and find an activity ID of a specific message?

Use Delete messages-Bot framework's DeleteActivity method: Update and delete messages sent from bot.

How can I test the validity of the card schema via code?

You can test or validate the Adaptive Card schema using the Adaptive cards editor (preview) option in Developer Portal > Tools.

Why am I unable to create a bot in Developer Portal?

App registration is disabled for the user or the user doesn't have enough permissions to create an app. For more information, see limitations and known issues.

Microsoft 365 Chat

Why isn't Microsoft 365 Chat including my plugin in a response?

Ensure your app manifest (previously called Teams app manifest) is descriptive. The app manifest helps in plugin matching in response to a user prompt. Also, make sure you've uploaded the app package to Outlook and interacted with the app, including authentication.

If the problem continues, use the downvoting option in the Microsoft 365 Chat reply and prefix your reply with [MessageExtension].

What descriptions should I include in app manifest?

Here's an example description that work for NPM Finder.

 "name": { 

        "short": "NPM Finder", 

        "full": "Nuget Package Manager Finder" 


    "description": { 

        "short": "Returns information about available NPM packages", 

        "full": "The Nuget Package Manager (NPM) Finder application provides information (such as title and description) about Nuget packages available in the global NPM catalog." 



            "commands": [ 


                    "id": "searchQuery", 

                    "context": [ 




                    "description": "Searches the global NPM catalog for available packages", 

                    "title": "Search", 

                    "type": "query", 

                    "parameters": [ 


                            "name": "searchQuery", 

                            "title": "Search Query", 

                            "description": "A package name or description of capability to search", 

                            "inputType": "text" 



Microsoft 365 Chat includes my plugin in the response, but the Microsoft 365 Chat’s response doesn’t meet my expectations. What should I do?

Use the downvoting option in the Microsoft 365 Chat reply and prefix your reply with [MessageExtension].

Can I build my own Teams message extension?

Yes, you can. Ensure that you have a descriptive app manifest and have uploaded the app to Outlook and interacted with it, including authentication.

How can I get my existing Teams message extension to work with Microsoft Copilot for Microsoft 365?
  1. Register the bot channel in Azure Bot Service.
  2. Upload the app to Outlook.


What is the certification process?

After publishing their plugin, developers opt into the App Compliance flow in Partner Center. If they haven't completed Publisher Verification, they'll be prompted to do so before starting the Microsoft 365 Certification process. The next step is to complete Publisher Attestation, which collects self-attested information about their plugin, company, and operations. This information is published on a Microsoft 365 App Compliance Program site. The developer then starts the Microsoft 365 Certification process by uploading initial documents to help scope the assessment to their plugin and operating environment. Based on the scope, the developer will then be required to provide evidence for specific controls related to application security, operational security, and data handling/privacy. Developers that build on Azure can also use the App Compliance Automation Tool (ACAT). This tool automatically scans their environment and produces evidence for several controls, reducing the developer's manual work. For more information, see this video.

How are plugins certified?

After passing the proactive validation, developers of both existing and new message extensions that haven't been certified will be encouraged to certify their plugin. This will be communicated through an email confirming their message extension has been validated.

How are new plugins certified?

Developers will be encouraged to certify their new plugin after successfully completing validation.

Live share

Can I use my own Azure Fluid Relay service?

Yes! When initializing Live Share, you can define your own AzureConnectionConfig. Live Share associates containers you create with meetings, but you'll need to implement the ITokenProvider interface to sign tokens for your containers. For example, you can use a provided AzureFunctionTokenProvider, which uses an Azure cloud function to request an access token from a server.

While most of you find it beneficial to use our free hosted service, there may still be times where it's beneficial to use your own Azure Fluid Relay service for your Live Share app. Consider using a custom AFR service connection if you:

  • Require storage of data in Fluid containers beyond the lifetime of a meeting.
  • Transmit sensitive data through the service that requires a custom security policy.
  • Develop features through Fluid Framework, for example, SharedMap, for your application outside of Teams.

For more information, see how to guide or visit the Azure Fluid Relay documentation.

How long is data stored in Live Share's hosted service accessible?

Any data sent or stored through Fluid containers created by Live Share's hosted Azure Fluid Relay service is accessible for 24 hours. If you want to persist data beyond 24 hours, you can replace our hosted Azure Fluid Relay service with your own. Alternatively, you can use your own storage provider in parallel to Live Share's hosted service.

What meeting types does Live Share support?

Live Share supports scheduled meetings, one-on-one calls, group calls, and meet now. Channel meetings aren't yet supported.

Will Live Share's media package work with DRM content?

Live Share's media package work doesn't with DRM content. Currently, Teams doesn't support encrypted media for tab applications on desktop. Chrome, Edge, and mobile clients are supported.

For more information, you can track the issue here.

How many people can attend a Live Share session?

Currently, Live Share supports a maximum of 100 attendees per session. If it's something you're interested in, you can start a discussion here.

Can I use Live Share's data structures outside of Teams?

Currently, Live Share packages require the Teams Client SDK to function properly. Features in @microsoft/live-share or @microsoft/live-share-media won't work outside Microsoft Teams. If this is something you're interested in, you can start a discussion here.

Can I use multiple Fluid containers?

Currently, Live Share only supports having one container using our provided Azure Fluid Relay service. However, it's possible to use both a Live Share container and a container created by your own Azure Fluid Relay instance.

Can I change my Fluid container schema after creating the container?

Currently, Live Share doesn't support adding new initialObjects to the Fluid ContainerSchema after creating or joining a container. Because Live Share sessions are short-lived, this is most commonly an issue during development after adding new features to your app.


If you are using the dynamicObjectTypes property in the ContainerSchema, you can add new types at any point. If you later remove types from the schema, existing DDS instances of those types will gracefully fail.

To fix errors resulting from changes to initialObjects when testing locally in your browser, remove the hashed container ID from your URL and reload the page. If you're testing in a Teams meeting, start a new meeting and try again.

If you plan to update your app with new SharedObject or LiveObject instances frequently, you should consider how you deploy new schema changes to production. While the actual risk is relatively low and short lasting, there might be active sessions at the time you roll out the change. Existing users in the session shouldn't be impacted, but users joining that session after you deployed a breaking change might have issues connecting to the session. To mitigate this, you might consider some of the following solutions:

  • Deploy schema changes for your web application outside of normal business hours.
  • Use dynamicObjectTypes for any changes made to your schema, rather than changing initialObjects.


Live Share does not currently support versioning your ContainerSchema, nor does it have any APIs dedicated to migrations.

Are there limits to how many change events I can emit through Live Share?

While Live Share is in Preview, any limit to events emitted through Live Share isn't enforced. For optimal performance, you must debounce changes emitted through SharedObject or LiveObject instances to one message per 50 milliseconds or more. This is especially important when sending changes based on mouse or touch coordinates, such as when synchronizing cursor positions, inking, and dragging objects around a page.

Is Live Share supported for Government Community Cloud (GCC), Government Community Cloud High (GCC-High), and Department of Defense (DOD) tenants?

Live Share isn't supported for GCC, GCC-High, and DOD tenants.

Does Live Share support external and guest users?

Yes, Live Share supports guest and external users for most meeting types. However, guest users aren't supported in channel meetings.

Does Live Share support Teams Rooms devices?

No, Live Share doesn't support Teams Rooms devices.

Do Live Share apps support meeting recordings?

No, Live Share doesn't support meeting recordings.

Microsoft Graph

How can a user set their timezone to get notifications at a preferred time?

You can use the following Graph API Get user mailbox settings. You can get the user’s time zone as follows:

  • GET /me/mailboxSettings/timeZone
  • GET /users/{id|userPrincipalName}/mailboxSettings/timeZone


How can I deploy the code in Azure using Teams Toolkit, and use Graph API to get a user profile photo?

For more information on Teams Toolkit, see Create a new Teams project and TeamsFx Library.

Does Graph API work in Postman?

You can use the Microsoft Graph Postman collection with Microsoft Graph APIs.

For more information, see Use Postman with the Microsoft Graph API.

Does Graph API work in Microsoft Graph explorer?

Yes, Graph API works in Microsoft Graph explorer.

For more information, see Graph explorer.


What should I do if one or more of the course teams weren't created after synchronization?

Each Moodle course must have at least one faculty and one student matched to a Microsoft 365 account username. The team can't be created if the synchronization doesn't find a match.

Each team course instance must have an owner, and the synchronization sets the faculty as the owner, with assumption that the faculty has Teams license.

What should we do to remove Moodle login page when working from Teams? Can we force single sign-on (SSO)?

The app users have multiple sign-in options from the Moodle login page.

  • To sign in exclusively using Microsoft 365 credentials, enable the Force redirect configuration settings for the auth_oidc plugin. If the service is enabled, the app user can see the Microsoft sign in page.
  • To sign in manually to the Moodle portal, see Moodle.


How can I specify which users to sync? I don’t want all Microsoft Entra users synchronized with the Moodle website.

Use the User Creation Restriction option to specify the app users by synchronizing the configuration options of the local_o365 plugin. The dropdown menu to the left of the filter offers options, such as Country or region, Company Name, and Language.


Create a dynamic Microsoft 365 group to enable the filter option with multiple profile properties.

The following image shows user creation restrictions options:


Microsoft Entra ID

We would like our faculty to be able to synchronize courses to Teams. Are Moodle administrators the only ones who can control synchronization of courses?

By default, only Moodle administrators can configure synchronization. The team owner can control if a course is synchronized to Teams and Allow configure course sync in course is enabled. In this case, the team owner is the faculty. The block displays the configuration option to individuals with the appropriate owner permissions.

The following image shows the option Allow configure course sync in course:


The following image shows synchronization of courses:


We have followed the documentation, but the user accounts fail to sync Microsoft Entra ID and Moodle. What should we do?

The issue can be resolved before users perform the Delta token clean up as a final troubleshooting step.

The following table provides the actions and dependencies to be performed and checked:

Dependency Action Reference
Stable version Verify that the version of Moodle is listed as a stable. For more information, see Version support.
Permissions Verify that the Azure application has the necessary permissions to run the synchronization. For more information, see Microsoft permissions.
Full sync Verify that Perform a full sync each run is enabled, and review the Task Logs for Sync users with Microsoft Entra ID. For more information, see Enable full sync
For more information, see Check task logs.
Token refresh Clean the User sync delta token in the local_o365 plugin. For more information, see, Token refresh.

One or more users are unable to sign in using their Microsoft 365 credentials, although most users can sign in without an issue. What would be the cause of this inconsistency?

The reason for inconsistencies with users being able unable to sign using their Microsoft 365 credentials can be related to the user mapping operation during synchronization. To resolve the issue, perform the following steps:

  • Check if the Moodle user authentication type is OpenID.
  • Check if the Moodle User Name matches the Microsoft Entra username.
  • Clean up the Token Issue and retry.
  • Check if the users have Permissions to access the Azure application.


All users are unable to sign in using their Microsoft 365 credentials. What can we do to resolve this?

Users who were unable to sign in at the start need to report the issue and verify that the application's Client secret hasn't expired.

The following image shows the error message received when a user signs in using their Microsoft 365 credentials:

report issue

The following image shows the error in Azure portal:

Azure portal

If the Client secret has expired, then the app user needs to generate a new Client secret, and update the configuration found on page. Users can sign in again after the Client secret has been updated, which can take up to 24 hours to re-provision.

How to change the Teams instance that is linked to a course?

Administrators can change the Teams instance associated with a course through the Manage Teams Connections page. Select Connect next to the course to be changed and select a Teams instance. If you use course reset to archive a team, you can link it back to the previous team.

The following image shows the Teams instance:

teams instance

Why isn’t the Atto Teams meeting integration showing up within the Atto editor?

The user can face Atto Teams meeting issue if the icon reference is missing in the Toolbar config, which displays the Teams icon within the Atto editor. The user needs to add Teams meeting icon to the right of the links icon using the following steps:

  1. Install the plugin.
  2. Update Toolbar config with teams meeting.

The following images show Toolbar icon after Toolbar configuration adjustment:

tool bar

links icon

For more information on editing Atto toolbar, see:

Do the meetings scheduled through Microsoft integration appear in Outlook or in Teams calendars? What is the standard timeline for the meetings to be displayed?

The meetings scheduled through the app don't appear in the scheduler’s Outlook or Teams calendar as they're similar to Channel Meetings. All the members in the course channel can attend the meeting directly from the embedded channel link. For more information, see Channel meetings.

However, you can access the invite and manually add participant names to the Required or Optional fields of the meeting invitation to display the remote meeting on their calendars. The standard timelines are based on the date the user specifies when the meeting is created. For more information, see Limits and specifications for Teams.

Is there any support site where we can get more help on products and other issues?

For support and help on the product and services issues or developer community help see, Support and feedback.


How can I save conservation reference in a proactive bot?

It's recommended that you save conversation references to database and use the same for building conversation object to send proactive message.

Page orientation


The FAQs are applicable for Teams mobile only.

Do I need to make any changes in the app to get the landscape mode?

No. You can use apps in landscape mode by default.

What if my app doesn't support one of the modes, or if the scenario is only intended to work in one of the modes?

Teams supports both modes by default. The apps in Teams aren't supported to work in one mode only. If your app demands this requirement, reach out to the support team.

How can I fix the scroll missing in the app empty state?

Add <FlexColumn scroll></FlexColumn> to the empty state for the app.

How can I test my app compatibility in both landscape and portrait modes?

To test your app's compatibility in both modes, run the app on Teams mobile in different device orientations. Ensure that all elements, including buttons, text, and images are correctly aligned and displayed without any UI distortions or cut-offs.

Are there any best practices for designing apps that work well in both landscape and portrait modes? Yes, when designing apps for Teams, it's essential to follow responsive design principles to ensure optimal performance and user experience in both landscape and portrait modes. Use flexible layouts and adaptive components to accommodate different screen sizes and orientations.
Does landscape mode support both Android and iOS Teams apps?

Yes, the landscape mode is supported on both Android and iOS Teams apps, providing consistent experience for users across both platforms.

Can I customize the app's behavior differently for landscape and portrait modes?

The behavior of the app remains consistent across both modes. However, if you have specific use cases or requirements that require different behaviors in each mode, reach out to the support team with your feedback and suggestions.

Is there any impact on the performance of apps in landscape mode?

No, the landscape mode support in Teams doesn't have any negative effect on app performance. Teams ensures a smooth and seamless experience for users, regardless of the device orientation.

Partner Center

Where do you find MPN ID?

You can find your MPN ID by fetching the Partner Center ID.

I can't see the Developer Tab in Partner Center. How can I fix it?

If you can't see the Developer tab, you can raise a ticket in Partner Center.

For more information about raising a ticket, see Get help or open a support ticket.

How do I create a Partner Center account?

You can create a Partner Center account one of the following ways:


How can I find my account in Partner Center?

Open a Partner Center support ticket and select the following:

Menu Option
Category Commercial Marketplace
Topic General Marketplace Help and How-to questions
Subtopic Office add-in

Where can I get support for my Partner Center account issues?

Visit the publishers support page to search for your issue. If the guidance isn't helpful, create a Partner Center support ticket.

How do I manage my Microsoft 365 Store account in Partner Center?

See manage your account through Partner Center for information.

My phone number doesn't have an area code, so how do I add it to my profile?

The phone number has three parts: country code, area code, and telephone number. If your phone number doesn't include an area code, leave the second box empty and complete the third box.

How do I manage my account settings and partner profile in Partner Center?

See manage account settings and profile info for information.

Why do I see a, "This account isn't published eligible," message when I try to submit my app?

You received this error message because your account verification status is pending. Check your status in the Partner Center dashboard. Select the Settings gear icon and choose Developer settings > Account > Account settings.

Partner Center verification status

What is verified in the Partner Center account verification process?

There are three verification areas, Email Ownership, Employment, and Business. For more information, see what is verified and how to respond.

If you're the primary contact, global admin, or account admin, you can monitor verification status and track progress on your profile page.

After the verification process is complete, the status of your enrollment on the profile page changes from pending to authorized. The primary contact then receives an email from Microsoft within a few business days.

My account verification status hasn't advanced beyond Email Ownership. How should I proceed?

During the Email Ownership verification process, a verification email is sent to the primary contact. Check your primary contact inbox for an email from with the subject line Action needed: Verify your email account with Microsoft and complete the email verification process. The verification email is sent to the address listed on your Partner Center account settings.

Remember the following points about the email verification process:

  • The email verification link is valid only for seven days.
  • You can request to resend the email by visiting your partner profile page and selecting the Resend verification email link.
  • To ensure you receive the email, safe-list as a secure domain and check your junk email folders.


I've checked my mail folders and haven't received the verification email. What must I do next?

Try the following steps:

  • Check your junk or spam folder.
  • Clear the browser cache, go to your Partner Center account dashboard, and select Resend verification email.
  • Try accessing the Resend verification email link from a different browser.
  • Work with your IT department to ensure that the verification emails aren't blocked by your email server.
  • Adjust your server's spam filter to allow or safe-list all emails from


How long does the employment verification process usually take?

If all the submitted details are correct, the employment verification process takes about two hours to complete.

How long does the business verification process usually take?

If all the required documents are submitted, business verification takes one to two business days to complete.

If I reach out to the support team, will my ticket be expedited?

Support tickets get resolved in a week. Check for updates sent to the email you provided when creating the support ticket.

I created a support ticket but haven't received an update in seven business days. Where can I get help?

Send an email to with the following details:

  • Subject Line: Partner Center Account Issue for your app name.
  • Email body:
    • Support ticket number.
    • Your seller ID.
    • A screenshot of the issue, if possible.


Where else can I go for Partner Center help?

The following resources can also assist:

Single sign-on

How can I validate a user when they invoke an Adaptive Card?

You can open the authentication page in the task module when the user selects the button.

You can use the code sample for opening the task module on button click. You can replace the taskInfo.url with your auth page.

How can I change application ID URI of SSO scope to use bot ID also so that the consent window won't be required for a bot app?

For more information, see Configure your app in Microsoft Entra ID.

I want to open an iframe that contains a React app (that displays confidential information) from a bot task module securely. Can you suggest what is the best, easiest, and standard approach to perform this operation?

Implement react page with tab SSO and render the content as required. You can open the same tab URL as task module from bot.

For more information, see Enable SSO for tab app.

How can I avoid SDK timeout error while the app user signs in?

Open the sign in simple start page instead of opening login page directly to resolve the issue.

How can I generate the access token using the endpoint oauth2/v2.0/token with grant type as "authorization_code"?

Configure the application you're using to only execute HTML encoding of the scopes once, so the scopes can be correctly sent and evaluated by Microsoft Entra ID.

How can I implement Bot SSO using React?

If you use Teams Toolkit to build your app, see Add single sign-on to Teams app for more information.

For more information about Node js code sample, see Bot SSO quick-start.


How can I use deeplink to get the subEntityId or subPageId on mobile client while navigating from one tab to another tab?

Upgrade the Teams JavaScript client SDK to (@microsoft/teams-js": "^2.0.0") to resolve the issue.

Which tab gets pinned if both configurable tab and static tab are defined in the app manifest for a specific scope?

If you have both configurable tab and static tab defined in your app manifest for a specific scope, Teams pins the static tab by default.

What if I already have pre-existing pinned configurable tabs after switching to static tabs?

Pre-existing pinned configurable tab instances of your app continue to work the same. You don't have the option to pin new instances of these configurable tabs. When you select to pin your tab, then Teams pins the static tab of your app.

Teams toolkit

FAQ for Provision cloud resources using Teams Toolkit.

How to troubleshoot?

If you get errors with Teams Toolkit in Visual Studio Code, you can select Get Help on the error notification to go to the related document. If you're using TeamsFx CLI, there will be a hyperlink at the end of error message that points to the help doc. You can also view provision help doc directly.

How can I switch to another Azure subscription while provisioning?
  1. Switch subscription in current account or log out and select a new subscription.
  2. If you have already provisioned current environment, you need to create a new environment and perform provision because ARM doesn't support moving resources.
  3. If you didn't provision current environment, you can trigger provision directly.


How can I change resource group while provisioning?

Before provision, the toolkit asks you if you want to create a new resource group or use an existing one. You can provide a new resource group name or choose an existing one in this step.

How can I provision a SharePoint-based app?

You can follow provision SharePoint-based app.


Currently, building a Teams app using SharePoint Framework with Teams Toolkit doesn't have direct integration with Microsoft Entra admin center. The content in the document doesn't apply to SPFx-based apps.

How can I deploy the code in Microsoft Entra ID using Teams Toolkit, and use Graph API to get the app user's profile photo?

Shared references to deploy the code using toolkit:

You can call Graph API to get the app user's profile photo.