Recent Discussions
Agents Toolkit for Visual Studio - many bots in monorepo
I am using the Agents Toolkit for Visual Studio and I am thinking about hosting several Teams Bots in the same git repository. Each of them should be deployed in a different Tenant, so I am wondering about best practices to avoid a bot ending up in the wrong tenant. I am completely new to Agents Toolkit and Teams development. Any hints on upcoming events regarding these topics are highly appreciated.34Views0likes2CommentsCan I create an Azure Key Vault from a Teams app in the customer’s tenant?
Hi everyone, I’m building a Teams app and want to support this flow: A customer admin opens the app and sees a setup dialog. They enter subscription/resource group details. The app then creates a new Azure Key Vault in the customer’s tenant. My questions: Is it feasible for a Teams app to create a Key Vault in the customer’s tenant? What is the recommended way to request the necessary permissions? (e.g., Azure AD OAuth2 consent for ARM API access?) Or is best practice for the customer to create the Key Vault themselves and just grant my app access? Thanks!88Views0likes2CommentsHow to embed large text blocks in a chat message
I am trying to include a large-ish code snippet in a Teams message. I understand that the message itself can only be so many characters, but is there a way to create an ad-hoc object to place a larger text chunk in, rather than save my content to a file and attach the file?6Views0likes0CommentsTeams Stamps External Users with Trust Indicators
Attackers might attempt to use social engineering to trick Teams users in compromise. Trusted indicators help users understand the status of external users with difficult visual markers. The idea is that users will see the marker and realize that they should be less trusting in their communications. Sounds good. But maybe securing external access for Teams with a comprehensive block list is even better? https://office365itpros.com/2025/10/02/trust-indicator-teams/39Views1like4CommentsUnable to Add Tabs to Chats Consistently in Teams via GraphAPI
Expected Behavior: Tabs should be consistently added to chats when using the Graph API, provided all necessary permissions and conditions are met.Description We are encountering an issue when using the Microsoft Graph API to create chats and https://learn.microsoft.com/en-us/graph/api/chat-post-installedapps?view=graph-rest-1.0&tabs=http and https://learn.microsoft.com/en-us/graph/api/channel-post-tabs?view=graph-rest-1.0&tabs=http in Microsoft Teams. While we have the necessary permissions, the process of adding a tab to a chat works intermittently. Sometimes the tab is successfully added, but most of the time it fails, even though the app is installed correctly, with the following error: Failed to execute MsGraph backend request GetUserLicenseDetailsS2SRequest. Workload MsGraph_DirectoryServices. Request Url: https://graph.microsoft.com/v1.0/users/c0cfdd6b-d64d-42e1-8111-0881725f68ff/licenseDetails?$select=skuId,skuPartNumber,servicePlans, Request Method: GET, Response Status Code: NotFound, Response Headers: Strict-Transport-Security: max-age=31536000\r\nrequest-id: c86b5fbd-4224-486b-8f3e-8ad3f561a377\r\nclient-request-id: c86b5fbd-4224-486b-8f3e-8ad3f561a377\r\nx-ms-ags-diagnostic: {\"ServerInfo\":{\"DataCenter\":\"North Europe\",\"Slice\":\"E\",\"Ring\":\"4\",\"ScaleUnit\":\"011\",\"RoleInstance\":\"DB1PEPF00075073\"}}\r\nx-ms-resource-unit: 1\r\nDate: Tue, 22 Apr 2025 09:47:03 GMT\r\n, Reason Phrase: Not Found, Request ID 1F9FFBD00A5F489E9B7CABDCFB857858. Reproduction steps: Create an AAD App registration with required application permissions (to install apps and manage tabs in chats), ie at least the following: TeamsAppInstallation.ReadWriteAndConsentForChat.All TeamsTab.ReadWriteForChat.All Create a Teams application with a static tab with "groupChat" scope Install app in chat: POST https://graph.microsoft.com/v1.0/chats/:chatId/installedApps with body below Add (pin) tab to chat: POST https://graph.microsoft.com/v1.0/chats/:chatId/tabs with body below {"email address removed for privacy reasons" : "https://graph.microsoft.com/v1.0/appCatalogs/teamsApps/{{AppId}}"} Expected Behavior: Tabs should be consistently added to chats when using the Graph API, provided all necessary permissions and conditions are met. Current Behavior: The process of adding tabs to chats is unreliable. Sometimes the tab is added, but most times, the request fails without clear reasoning. All required permissions appear to be in place since it works occasionally. Note that this issue started to occur at the beginning of the month, around the 8th of April apparently, has anything changed around this date? Also note I also found traces of https://learn.microsoft.com/en-us/answers/questions/2259024/add-tab-to-chat-request-stopped-working-now-it-ret?source=docs in our logs but it is apparently resolved now.412Views2likes12CommentsHow to organise Posts within channels
Hi, Hoping that someone could share some thoughts and/or advice in relation to a scenario we're trying to find a solution for. We have a channel, in which we use Posts to share information, which can be grouped into two or three themes, with channel members. For clarity, please refer to the below pic for what I mean when referring to Posts (as distinct/different functionality from chats). What we'd like to do is mark the posts, with the respective theme, and be able to filter the theme so that users don't need to scroll through the whole list to manually find posts related to the theme they'd like to see. Some other considerations: we like the idea of using a consolidated channel for multiple themes, so that there are less different channels etc that users need to navigate/keep across all channel members need to have access all posts (not any specific subset of members/users) if there was a way to have multiple "Posts" tabs, this would work for us to be able to share the themed posts to a centralised posts space, as then users could access the separate Posts tab for specific themes as/if required we're trying to find the least "clunky" solution/approach to achieve an ease of grouping/finding posts related to a specific theme Thanks in advance for your time and thoughts : -) Cam.4Views0likes0CommentsDeleted Channels Reappearing
Teams DELETED Channels keep re-appearing. This is an ALL COMPANY team. Several Channels were deleted 2 months ago. A few days ago, these hidden channels showed up on 1) my Win10 desktop Teams app, 2) on my iOS Teams App, and 3) in the new Edge browser Teams. They do not show up on my Android Teams App. They showed up as a hidden channel. Sometimes, when trying to view them, they will disappear only to reappear about an hour later. I am an owner on the team.3.4KViews1like4CommentsEnabling Cross-Tenant Authentication for Teams Apps with Single-Tenant Bot
Hello Team, I am working on implementing authentication for a Teams application using the Microsoft 365 Agents SDK. Following Microsoft’s current guidance, I have: Registered a single-tenant Azure AD bot. Integrated Azure AD authentication. Prepared for AppSource distribution as the long-term supported method for cross-tenant availability. However, I am still facing challenges in reliably enabling sign-in for external users from other tenants. Specifically: The cross-tenant sign-in flow remains unclear. Validating authentication across multiple tenants is difficult without official end-to-end guidance. Existing samples and documentation primarily address single-tenant or internal-only scenarios. As of now, authentication for external users is still difficult to get working and validate consistently across tenants. Could you provide detailed guides, samples, or best practices for: Enabling authentication for external users in this single tenant + AppSource distribution model. Recommended patterns for testing cross-tenant authentication before AppSource submission. Any roadmap considerations for simplifying this scenario. This would help ensure Teams apps can meet compliance requirements while still delivering a smooth sign-in experience for users across organizations. Thank You, ChetanSolved163Views0likes5CommentsHow to make e-mail adresses of guests invisible to see for other guests?
As the owner of my teams organisation, i invited guests from different companies to work together. Unfortunately they can see not just the nickname of each other but also the e-mail adress, wich is a problem for me. How can i enable this. Thanks for your support.969Views0likes2CommentsHow to STOP Teams from auto-deciding for me what I should see and not see
I don't know about others but for me its very annoying when TEAMS decides for me what I need to see and don't need to see vs letting me make that decision myself. YES I can SHOW a channel that has been hidden but if I don't know it was hidden then I don't know it needs to be shown. I was looking for information that I knew would be in a file somewhere but I didn't know the file name and b/c TEMAS auto hid the channel it was in for me I couldn't locate it via manual search. I had to go ask someone else who had worked with the info and when they ds showed me the file I went back to my desk and of course I still couldn't locate it b/c I didn't realize it was in a hidden channel. I could search by the file name but I didn't make note of the file name b/c I thought that knowing in what Channel it was that I could then manually find it myself. Time was wasted all b/c MS Teams made choices for me without asking or checking with me first. Is there a way to shut this down so in the future TEAMS does not hide something soi that only I can hide it if I want to hide it? If any MS Engineer is reading this,. PLEASE stop making choices for us users! Its great that we can if we so choose, hide or show something but stop deciding for us what we should see and not see! It was annoying when you started this hide & seek game with the functions in the MS Applications and it's no more fun now that your doing it in TEAMS. Some users like to decide for themselves vs letting software choose for them.14Views0likes0CommentsThe Chat Notification Badge That Won't Die
I know there's another thread on this, but literally none of those solutions worked, so I'm a starting a new thread. My chat notification won't go away. All of my chats are read. Here's everything I've done to fix this already (note- It's a corporate computer so I can't mess with the anti-virus): Signed out of the app every (desktop, web, phone) Restarted my computer Cleared the cache data from all 13 different locations Changed the setting to close the app when I shut down Closed it in the Task Manager Turned off all of my notifications Clicked on every chat I've received over the last week The only thing that seemed to maybe be the culprit was a very large company meeting and I was the last to leave. There was a lot of chat in that meeting, though I didn't participate in any of it. The reason I think this was when I went to log into to Teams from my browser, as I started to type "Microsoft Teams" I noticed in the suggested sites that there was a chat message from that meeting. So obviously I've left the meeting. I've deleted that chat. I've even left the teams channel that hosts those meetings. For what it's worth, I don't have any notifications on the phone app (android). It's just on the desktop and the web. Please, for the love of god, help. It's slowly driving me insane and I don't have the mental capacity to deal with anything else that makes me insane during quarantine. 🙂 *jk- I'm fine. It's a joke*153KViews4likes54CommentsAzure Bot not joining meeting - Server Internal Error. DiagCode: 500#1203002.@
This problem has been bothering me for about two weeks and I haven’t found a solution yet. I’d really appreciate your help. Environment Setup 1.Development Tool: Visual Studio 2022 2.Deployment: The service is hosted on AWS. In AWS Networking, both TCP and UDP port 14217 are opened. The operating system is Windows Server 2022, and the firewall has been disabled temporarily for testing. 3.Certificate: A wildcard SSL certificate issued by Let’s Encrypt (CN = *.bottest.com, RSA-based) has been installed under LocalMachine\My certificate store. 4.Reverse Proxy: Both HTTPS and TCP traffic are forwarded through Nginx. http { server { listen 80; server_name localhost; } server { listen 443 ssl; server_name signaling.bottest.com; ssl_certificate fullchain.pem; ssl_certificate_key privkey.pem; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; location / { proxy_pass http://127.0.0.1:5001; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection keep-alive; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } } } stream { upstream dotnet_app_tcp { server 127.0.0.1:8445; } server { listen 14217 ssl; ssl_certificate fullchain.pem; ssl_certificate_key privkey.pem; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; proxy_pass dotnet_app_tcp; } } 5. The bot’s Application Permissions have also been granted, as shown in the figure below: 6. Bot initialization var mediaPlatformSettings = new MediaPlatformSettings { ApplicationId = _botConfig.MicrosoftAppId, MediaPlatformInstanceSettings = new MediaPlatformInstanceSettings { CertificateThumbprint = _botConfig.CertificateThumbprint, // LocalMachine/My certificate-*.bottest.com-thumbprint InstanceInternalPort = 8445, InstancePublicPort = 14217, InstancePublicIPAddress = IPAddress.Parse("18.181.xx.xx"), // AWS public IP ServiceFqdn = "media.bottest.com" } }; _communicationsClient = new CommunicationsClientBuilder("IMediaSessionBot", _botConfig.MicrosoftAppId, _graphLogger) .SetAuthenticationProvider(_authProvider) .SetServiceBaseUrl(new Uri("https://graph.microsoft.com/v1.0")) .SetNotificationUrl(new Uri($"{_botConfig.PublicUrl}/api/calls")) .SetMediaPlatformSettings(mediaPlatformSettings) .SetHttpClient(httpClient) .Build(); _communicationsClient.Calls().OnIncoming += this.OnIncomingCall; _communicationsClient.Calls().OnUpdated += OnCallUpdated; } 7.join meeting var scenarioId = Guid.NewGuid(); var meetingDetails = MeetingUrlParser.Parse(meetingUrl); var chatInfo = new ChatInfo { ThreadId = meetingDetails.ThreadId }; var meetingInfo = new JoinMeetingIdMeetingInfo { JoinMeetingId = _botConfig.MeetingID, Passcode = _botConfig.MeetingPasscode, AdditionalData = new Dictionary<string, object> { { "allowConversationWithoutHost" , true }, }, }; ILocalMediaSession mediaSession = this.CreateLocalMediaSession(); var joinParams = new JoinMeetingParameters(chatInfo, meetingInfo, mediaSession) { TenantId = tenantId, AllowGuestToBypassLobby = true }; try { _activeCall = await _communicationsClient.Calls().AddAsync(joinParams, scenarioId).ConfigureAwait(false); _logger.LogInformation($"Successfully initiated the add-participant request, Call ID:: {_activeCall.Id}"); } catch (ODataError ex) { Console.WriteLine($"{DateTime.Now:yyyy-MM-dd HH:mm:ss.fff} Failed to initiate the call: .ex={ex.ToString()}"); throw; } private ILocalMediaSession CreateLocalMediaSession(Guid mediaSessionId = default(Guid)) { var mediaSession = this._communicationsClient.CreateMediaSession( new AudioSocketSettings { StreamDirections = StreamDirection.Recvonly, SupportedAudioFormat = AudioFormat.Pcm16K, ReceiveUnmixedMeetingAudio = true, EnableAudioHealingForUnmixed = true }, new VideoSocketSettings { StreamDirections = StreamDirection.Inactive }, mediaSessionId: mediaSessionId); return mediaSession; } 8.call back(SetNotificationUrl(new Uri($"{_botConfig.PublicUrl}/api/calls"))) State at first attempt:Notification payload: {"@odata.type":"#microsoft.graph.commsNotifications","value":[{"@odata.type":"#microsoft.graph.commsNotification","changeType":"updated","resource":"/app/calls/07004d80-44b9-479e-bb43-2d5983e3f235","resourceUrl":"/communications/calls/07004d80-44b9-479e-bb43-2d5983e3f235","resourceData":{"@odata.type":"#microsoft.graph.call","state":"establishing","chatInfo":{"@odata.type":"#microsoft.graph.chatInfo","threadId":"19:meeting_MzIyMTYzOTMtMGYyNi00OTE2LTg2NjUtYmU4ZDlhYmY2ZmRj@thread.v2"},"meetingInfo":{"@odata.type":"#microsoft.graph.joinMeetingIdMeetingInfo","joinMeetingId":"4130864187312","passcode":"P7GY7Vv2","allowConversationWithoutHost":true},"callChainId":"b50a00dc-74da-42b0-966a-e88dea7e6087"}}]} State at second attempt:Notification payload: {"@odata.type":"#microsoft.graph.commsNotifications","value":[{"@odata.type":"#microsoft.graph.commsNotification","changeType":"deleted","resource":"/app/calls/07004d80-44b9-479e-bb43-2d5983e3f235","resourceUrl":"/communications/calls/07004d80-44b9-479e-bb43-2d5983e3f235","resourceData":{"@odata.type":"#microsoft.graph.call","state":"terminated","resultInfo":{"@odata.type":"#microsoft.graph.resultInfo","code":500,"subcode":1203002,"message":"Server Internal Error. DiagCode: 500#1203002.@"},"chatInfo":{"@odata.type":"#microsoft.graph.chatInfo","threadId":"19:meeting_MzIyMTYzOTMtMGYyNi00OTE2LTg2NjUtYmU4ZDlhYmY2ZmRj@thread.v2"},"meetingInfo":{"@odata.type":"#microsoft.graph.joinMeetingIdMeetingInfo","joinMeetingId":"4130864187312","passcode":"P7GY7Vv2","allowConversationWithoutHost":true},"callChainId":"b50a00dc-74da-42b0-966a-e88dea7e6087"}}]} Here, an error occurred: 500 #1203002. 9. Based on the packet capture, the issue seems to be related to interactions with /MediaProcessor/v1. It’s unclear whether this is due to a protocol mismatch or a certificate mismatch, as shown in the figure below: 10.Database schema (DDL) dependencies required by the bot <ItemGroup> <PackageReference Include="Microsoft.ApplicationInsights.WorkerService" Version="2.23.0" /> <PackageReference Include="Microsoft.Azure.Functions.Worker" Version="1.24.0" /> <PackageReference Include="Microsoft.Azure.Functions.Worker.ApplicationInsights" Version="1.4.0" /> <PackageReference Include="Microsoft.Azure.Functions.Worker.Core" Version="1.20.0" /> <PackageReference Include="Microsoft.Azure.Functions.Worker.Extensions.Http" Version="3.3.0" /> <PackageReference Include="Microsoft.Azure.Functions.Worker.Sdk" Version="1.18.1" /> <PackageReference Include="Microsoft.AspNetCore" Version="2.1.3" /> <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.1.2" /> <PackageReference Include="Microsoft.Bot.Builder.Integration.AspNet.WebApi" Version="4.22.1" /> <PackageReference Include="Microsoft.CognitiveServices.Speech" Version="1.46.0" /> <PackageReference Include="Microsoft.Graph.Communications.Calls.Media" Version="1.2.0.10563" /> <PackageReference Include="Microsoft.Graph.Communications.Core" Version="1.2.0.10563" /> <PackageReference Include="Microsoft.Graph.Core" Version="3.1.3" /> <PackageReference Include="Microsoft.IO.RecyclableMemoryStream" Version="3.0.1" /> <PackageReference Include="Microsoft.ServiceFabric.AspNetCore.HttpSys" Version="3.2.187" /> <PackageReference Include="Microsoft.Skype.Bots.Media" Version="1.31.0.180" /> <PackageReference Include="Microsoft.Kiota.Http.HttpClientLibrary" Version="1.3.3" /> </ItemGroup> 11.The certificate has also been uploaded to Azure, as shown in the figure:107Views0likes4CommentsTeams Bluetooth Audio Stack - Headphone vs Headset Failure
Been having a strange issue since the latest update on New Teams (1st Oct 2025 updated). This only happens with Bluetooth and with Headsets like PLT Voyager Legend and Yealink BH71 and on Windows 11. Mobile phone Teams works fine and to be clear, all other apps work fine with the Headsets. Its ONLY Teams doing this, and onluy since this update - worked perfectly for years before. When my device is connected Teams is separating the Speakers as Headphone and the Mic as Headset. This now means that when using the Mic, it won't play audio through the headphone (speaker) and vica versa when using the speaker (headphone) it won't allow the Mic (headset) to be used. This is a MASSIVE regression and extemely frustrating for any mobile user. I thought this was a PLT issue, so I bought a brand new Yealink BH71 and connected it via bluetooth and it did exactly the same thing. To be clear, this was working perfectly for months and years before this latest update.30Views0likes0CommentsPremium Planner major flaw: Transfer to other groups does not work
I have just realized today that it is not possible to transfer premium planners to other groups. There is the "copy plan" feature but NOT the "select a destination group" feature. Probably a miss from the product team, Should not be too hard to fix.13Views0likes0CommentsTeams meeting that I created will not let me join
I have created several video meetings within Teams. When I click on the invitation link within my Outlook calendar or the "join" button I am brought to Teams. I confirm that my camera is on and that I am going to use my computer audio. When I click the "join" button I get the message - "when the meeting starts, we’ll let people know you’re waiting”. Mu invited guest get the same message and are waiting on their end as well. I created the meeting. I would assume that I could join the meeting and that I would be notified when they are queued up to be admitted to the meeting. Anyone have an idea what is going on here?10KViews1like7CommentsHow to flip mirror image that others are seeing
On teams, I am seeing right image but the other person/people on call are seeing mirror image or flipped image. This makes my face look bigger on one side and is cause of constant embarrassment. Zoom and Skype have toggle button to switch how other may be seeing you. Please share how I can change how others are viewing my video. I believe this is a basic function and should be there somewhere . Else, we would have to change the use of teams to zoom for entire organization.Solved578KViews4likes25CommentsApp availability - exclude a group
Hi all, I have a use case to have an app be available on Teams for everyone, except a group of people. I know you can update app availability in Teams admin center, but it doesn't give me the option to exclude the group and make it available for all other users. Is there a way to achieve this? Thanks in advance!63Views0likes1CommentIssue with Deep Link to Meeting Side Panel in Microsoft Teams
Dear Team, I hope this message finds you well. We are currently experiencing an issue with the deep link to the meeting side panel in Microsoft Teams. Despite following the documentation provided at the link below, the functionality is not working as expected: https://learn.microsoft.com/en-gb/microsoftteams/platform/concepts/build-and-test/deep-link-workflow?tabs=teamsjs-v2#deep-link-to-meeting-side-panel When attempting to use the deep link, we encounter the following issue: Instead of opening our custom application in the side panel, the meeting window opens with the chat displayed on the right-hand side. And in the background, I am getting the below error. We would appreciate your assistance in resolving this matter, as the deep link is a critical component for our application integration within Microsoft Teams. Thank you for your prompt attention to this issue. Best regards, Sukesh PK910Views1like5CommentsDeleting AutoAttendants and CallQueue
Hello There are commands to delete AutoAttendants and CallQueue. But I get allways an error "Can't remove the Auto Attendant. Auto Attendant is still referenced by Endpoints Ids" Even if all Ressource Accounts are deleted a day before. These Auto Attendants and CallQueues are configured as Calling ID's When I manually delete them after removing there also an error that call queue time was to low. Is it possible to force the deletion. Regards JFM_12143Views0likes6Comments
Events
in 12 hours
Register today as spaces are limited.
REGISTRATION FOR THESE EVENTS ARE NOW CLOSED
REGISTER HERE
We’re entering a new era where collaboration and communication are being reimagined through the ...
Monday, Oct 06, 2025, 12:00 AM PDTIn-Person
0likes
3Attendees
0Comments
Recent Blogs
- Hey Microsoft Tech Community, we’re back with the latest updates to Microsoft Teams! This month we’re excited to spotlight many new features, like Threads in Channels which lets you reply direct...Sep 30, 20253.6KViews1like1Comment
- 2 MIN READWe’re excited to announce the next phase of enhancements to the Best practice configurations dashboard in Teams admin center with three new scenarios that further empower administrators to optimize t...Sep 22, 2025660Views1like0Comments