End-to-end process of building, validating, and distributing custom apps and add-ins across Microsoft 365 platforms
Hi @Anton Borkivskyi
Based on the behavior you described, the issue is most likely related to how Microsoft 365 handles personal apps compared to Microsoft Teams.
Your bot works correctly in Teams Desktop/Web because Teams can open the bot chat directly from the bots section, and the copilotAgents.customEngineAgents configuration allows it to open as a Copilot chat. However, Microsoft 365 Apps page typically expects the app to provide a launchable personal app experience through a valid personal static tab, usually using contentUrl.
In the current manifest, the staticTabs section only contains:
"staticTabs": [
{
"entityId": "conversations",
"scopes": [
"personal"
]
},
{
"entityId": "about",
"scopes": [
"personal"
]
}
]
These entries are not considered launchable personal static tabs by the Microsoft 365 app launcher because they don’t define a hosted tab experience. As a result, M365 shows the error message: Unable to load requested application. No static tabs are configured.
You also mentioned that when adding staticTabs with contentUrl and websiteUrl, the app failed to open even in Teams. In that case, the issue is usually not the staticTabs definition itself, but the hosted tab page configuration.
Here are some common causes you may check:
-the contentUrl is not using HTTPS
-the domain is missing or mismatched in validDomains
-the hosted page does not load the Teams JavaScript SDK or does not call microsoftTeams.app.initialize()
-the page is blocked by X-Frame-Options or restrictive Content Security Policy (CSP) headers
-the page URL redirects to another domain that is not listed in validDomains
So, adding a real personal static tab is still required for Microsoft 365, but the hosted tab page must also be Teams-compatible.
A valid example would be:
"staticTabs": [
{
"entityId": "home",
"name": "Home",
"contentUrl": "https://yourdomain.com/tab",
"websiteUrl": "https://yourdomain.com/tab",
"scopes": ["personal"]
}
],
"validDomains": [
"yourdomain.com"
]
References:
- Methods to Build Tab App - Teams | Microsoft Learn
- Tabs in Microsoft Teams - Teams | Microsoft Learn
- Configure Tab Capability - Teams | Microsoft Learn
I hope this information is helpful.
If the answer is helpful, please click "Accept Answer" and kindly upvote it. If you have extra questions about this answer, please click "Comment".
Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.