I have built a custom Microsoft Teams app using TypeScript React and deployed it inside a Kubernetes (K8s) pod. When I upload the manifest to Microsoft Teams, I don't see the app in the UI. However, when I inspect the console logs (F12 in Teams), I can see logs coming from the app, meaning it is loading in the background.
When i run the app locally everything works fine.
Manifest.json
{
"$schema": "https://developer.microsoft.com/en-us/json-schemas/teams/v1.19/MicrosoftTeams.schema.json",
"manifestVersion": "1.19",
"version": "1.2.0",
"id": "32e8e5ff-cfee-4782-a059-7e0ed215a3a4",
"developer": {
"name": "ExampleB.V",
"websiteUrl": "https://example.com/",
"privacyUrl": "https://example.com/privacy-statement/",
"termsOfUseUrl": "https://example.com/privacy-statement/"
},
"staticTabs": [
{
"entityId": "index",
"name": "Home",
"contentUrl": "https://example.com/index.html#/tab",
"websiteUrl": "https://example.com/index.html#/tab",
"scopes": ["personal", "groupChat", "team"]
}
],
"validDomains": [
"*.example.com",
],
"webApplicationInfo": {
"id": "32e8e5ff-cfee-4782-a059-7e0ed215a3a4",
"resource": "api://example.com/32e8e5ff-cfee-4782-a059-7e0ed215a3a4"
}
}
What I Have Tried:
✅ Checked logs in Teams Console (F12)
- Logs from the app are visible, but the UI doesn’t appear.
✅ Verified HTTPS Access
- When I open
https://example.com/index.html#/tab in a browser, the app loads fine.
✅ Added Domain to validDomains
-
example.com is already listed.
✅ Checked for CSP Errors (F12 in Teams Console)
- No explicit CSP errors, but I'm not sure if it's blocked due to iframe restrictions.
✅ Checked Kubernetes Deployment & Service
- The pod is running correctly, and logs show that requests are reaching the server.
Possible Issues & Questions:
- Is Microsoft Teams blocking my app due to iframe security policies?
- Do I need to explicitly allow
https://teams.microsoft.com in my Content-Security-Policy headers?
- Is my Kubernetes ingress configuration missing something?
- How can I confirm that the service is properly routing traffic inside Kubernetes?
- Is there an issue with
webApplicationInfo.resource?
- Does this value affect the app's visibility in Teams?
- Are there any specific Teams permissions required for rendering static tabs?