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.
Bots
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.
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 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 might 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 doesn't work with DRM content. 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?
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?
Live Share packages require the Teams Client SDK to function properly. Features in @microsoft/live-share
or @microsoft/live-share-media
don'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?
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?
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.
Note
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 changinginitialObjects
.
Note
Live Share doesn't 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 365 Copilot
Why isn't Microsoft 365 Copilot including my agent in a response?
Ensure your app manifest (previously called Teams app manifest) is descriptive. The app manifest helps in agent matching in response to a user prompt. Also, ensure that you upload the app package to Outlook and interacted with the app, including authentication.
If the problem continues, use the thumbs down indicator in the Microsoft 365 Copilot 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": [
"compose",
"commandBox"
],
"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 Copilot includes my agent in the response, but Microsoft 365 Copilot’s response doesn’t meet my expectations. What should I do?
Use the downvoting option in the Microsoft 365 Copilot 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 upload the app to Outlook and interacted with it.
How can I get my existing Teams message extension to work with Microsoft 365 Copilot?
- Register the bot channel in Azure Bot Service.
- Upload the app to Outlook.
What are the guidelines for Teams apps extensible as agent for Microsoft 365 Copilot?
You can read the Teams Store validation guidelines for Teams apps extensible as agent for Microsoft 365 Copilot.
What is the certification process?
After publishing the agent, start the App Compliance flow in Partner Center. If Publisher verification is incomplete, ensure that the App Compliance flow is completed before Microsoft 365 Certification. Then, complete Publisher Attestation, which gathers self-attested data about the agent, company, and operations. For more information, see Microsoft 365 App Compliance Program.
To start the Microsoft 365 Certification process, upload initial documents that define the assessment scope for the agent and operating environment. Depending on the scope, provide evidence for specific controls related to application security, operational security, and data handling or privacy. If you build your agent on Azure, you can use the App Compliance Automation Tool (ACAT) to scan the environment and generate evidence for several controls, reducing the manual workload. For more information, see App Compliance Automation Tool for Microsoft 365.
How are agents certified?
After the app passes the proactive validation, developers of both existing and new message extensions that aren't certified will be encouraged to certify their agent. This is communicated through an email confirming their message extension is validated.
How are new agents certified?
Developers are encouraged to certify their new agent after successfully completing validation.
How can I create or upgrade a message extension agent for Microsoft 365 Copilot?
You can create or upgrade a message extension as an agent in Microsoft 365 Copilot to interact with third-party tools and services and achieve more with Microsoft 365 Copilot. Additionally, your extensions must meet the standards for compliance, performance, security, and user experience outlined in guidelines to create or upgrade a message extension agent for Microsoft 365 Copilot.
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 Teams Toolkit CLI.
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.
Moodle
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.
Tip
Create a dynamic Microsoft 365 group to enable the filter option with multiple profile properties.
The following image shows user creation restrictions options:
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:
The following image shows the error in 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:
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:
- Install the plugin.
- Update Toolbar config with teams meeting.
The following images show Toolbar icon after Toolbar configuration adjustment:
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.
Notifications
How can I save conversation 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
Note
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 CCP ID?
You can find your CCP 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:
- If you're new to Partner Center and don't have a Microsoft Network Account, create an account using the Partner Center enrollment page.
- If you're already enrolled in the Microsoft Cloud Partner Program, create an account directly from Partner Center using existing Microsoft Partner Center enrollments.
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.
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 maccount@microsoft.com 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 microsoft.com 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 maccount@microsoft.com.
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 teamsubm@microsoft.com 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 dialog (referred as task module in TeamsJS v1.x) when the user selects the button.
You can use the code sample for opening the dialog 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 dialog (referred as task module in TeamsJS v1.x) 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 dialog 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.
Stageview
Which Stageview should I use?
Collaborative Stageview allows the users to open content along with a side panel conversation in a Teams window. This view is best suited for most of the collaboration scenarios.
What's the difference between Stageview Modal and dialogs?
Stageview Modal is useful to display rich content to the users, such as page, dashboard, or file.
Dialogs (referred as task modules in TeamsJS v1.x) are useful to display messages that need users' attention or collect information required to move to the next step.
When Stageview is invoked, the content opens in Collaborative Stageview but gets loaded in the main Teams window instead of a new window. How to open the content in a new window?
Ensure that your contentUrl
domain is accurately reflected in the manifest validDomains
property. For more information, see app manifest schema.
Why isn't any content displayed in a new Teams window even when contentUrl matches with validDomains?
Call app.notifySuccess()
in all iframe-based contents to notify Teams that your app is loaded successfully. If applicable, Teams hides the loading indicator. If notifySuccess
isn't called within 30 seconds, Teams assumes that the app is timed out and displays an error screen with a retry option. For app updates, this step is applicable for tabs that are already configured. If you don't perform this step, an error screen is displayed for the existing users.
Can I include a deep link in my contentUrl?
No, deep links aren't supported in contentUrl
.
How do I keep a specific thread shown alongside my content?
Collaborative Stageview from a deep link or a stageView API comes with the additional threadId
parameter. You can explicitly define the chat thread to be displayed in the side panel for your specific contentUrl
. For more information about retrieving a threadId
, see get conversation thread.
Tabs
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 AI library
What does the Teams AI library do?
Teams AI library provides abstractions for you to build robust applications that utilize OpenAI Large Language Models (LLMs).
Does Microsoft provide a hosted version of OpenAI models that are used by the AI library?
No, you need to have your Large Language Models (LLMs), hosted in Azure OpenAI or elsewhere.
Can we use the AI library with other Large Language Models (LLMs) apart from OpenAI?
Yes, it's possible to use Teams AI library with other Large Language Models (LLMs).
Does a developer need to do anything to benefit from LLMs? If yes, why?
Yes, Teams AI library provides abstractions to simplify utilization of Large Language Models (LLMs) in conversational applications. However, you (developer) must tweak the prompts, topic filters, and actions depending upon your scenarios.
How does Teams AI library integrate with ODSL?
The two are independent and can't be integrated.
How does Teams AI library co-exist against the hero-story of developers building for the skills ecosystem in Microsoft 365?
Teams AI library story is targeted towards Pro-developers and separate from the hero-story around skills ecosystem in Microsoft 365.
How should information about the existing Bot Framework SDK be communicated after announcing a new version?
Teams AI library works alongside the existing Bot Framework SDK and isn't a replacement.
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.
How can I switch to another Azure subscription while provisioning?
- Switch subscription in current account or log out and select a new subscription.
- If you have already provisioned current environment, you need to create a new environment and perform provision because ARM doesn't support moving resources.
- 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.
Note
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.
Platform Docs