Building, integrating, or customizing apps and workflows within Microsoft Teams using developer tools and APIs
The documented Teams behavior in the provided material does not indicate that publishing through the Teams admin center changes dialog iframe sandboxing rules or introduces a separate published-app-only dialog rendering model.
The supported checks for this scenario are:
- Verify the dialog URL domain is in the app manifest
validDomains.- Dialog URL domains must be included in
validDomains. - This applies to dialogs and tabs.
- Dialog URL domains must be included in
- Verify CSP
frame-ancestorsincludes the Microsoft 365 host domain.- For apps that define CSP headers, the guidance is to add:
-
https://*.cloud.microsoft - Existing
frame-ancestorsvalues should be retained for backward compatibility.
- Check runtime network behavior in Teams Developer Tools.
- The troubleshooting guidance recommends using the Network tab in Developer Tools in the Teams web client to inspect what is blocked or failing at runtime.
- Confirm all runtime URLs and redirects stay on declared domains.
- For Teams tabs, URLs must use HTTPS and either match the settings page domain or be listed in
validDomains. - The authentication guidance also requires flows to start and end on a domain listed in
validDomains.
- For Teams tabs, URLs must use HTTPS and either match the settings page domain or be listed in
Based on the available documentation, the most relevant published-vs-sideloaded explanation is not a documented publishing-state change, but a host/runtime framing issue:
- missing
https://*.cloud.microsoftinframe-ancestors - a runtime redirect or embedded resource landing on a domain not present in
validDomains - a blocked network request visible only during in-Teams rendering
The context also shows that blank or generic load failures across clients are commonly associated with iframe security requirements, CSP framing headers, and undeclared runtime domains rather than app publication state itself.
References: