Updates from: 04/04/2024 01:29:33
Service Microsoft Docs article Related commit history on GitHub Change details
platform Common Reasons For App Validation Failure https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/deploy-and-publish/appsource/common-reasons-for-app-validation-failure.md
Title: Common reasons for app validation failure
-description: Learn the most common reasons for app validation failure such as broken links, unexpected errors, crashes, valid domain guidelines violation, functional bugs.
+description: Learn the common reasons for app validation failure such as inadequate app description, improper screenshots, mismatch between Partner Center and app manifest, valid domains guidelines violation, or broken app functionality.
ms.localizationpriority: high Last updated 12/15/2022 + # Common reasons for app validation failure
-Most apps don't pass Microsoft Teams Store submission process due to issues during app development. The most common issues or reasons are addressed in this article to help you prepare your app better before [submitting for review](/office/dev/store/add-in-submission-guide?toc=/microsoftteams/platform/toc.json&bc=/microsoftteams/platform/breadcrumb/toc.json). Avoid these common failures and follow the [Microsoft Teams Store validation guidelines](prepare/teams-store-validation-guidelines.md) and [Commercial Marketplace Certification policies](/legal/marketplace/certification-policies) to increase the likelihood of your app to pass the Teams Store submission process.
+Most apps don't pass Microsoft Teams Store submission process due to issues during app development. The most common issues or reasons are addressed in this article to help you prepare your app better before [submitting for review](/office/dev/store/add-in-submission-guide?toc=/microsoftteams/platform/toc.json&bc=/microsoftteams/platform/breadcrumb/toc.json). To increase the likelihood of your app passing Teams Store submission process, avoid the common failure scenarios and follow the [Microsoft Teams Store validation guidelines](prepare/teams-store-validation-guidelines.md) and [Commercial Marketplace Certification policies](/legal/marketplace/certification-policies).
-Following are the most common reasons for your app to get rejected:
+The following are the most common reasons for your app to get rejected:
:::row::: :::column:::
- :::image type="icon" source="../../../assets/icons/broken-links-errors-icon-1.png" link="#broken-links-functional-bugs-app-crashes-and-unexpected-errors":::
- :::column-end:::
- :::column span="":::
- :::image type="icon" source="../../../assets/icons/app-description-icon.png" link="#app-description":::
- :::column-end:::
:::column span="":::
- :::image type="icon" source="../../../assets/icons/violation-trademark-icon.png" link="#violation-of-microsoft-trademark-and-brand-guidelines":::
+ :::image type="icon" source="../../../assets/icons/app-description-icon.png" link="#inadequate-app-description":::
:::column-end::: :::column span="":::
- :::image type="icon" source="../../../assets/icons/testability-icon.png" link="#testability":::
+ :::image type="icon" source="../../../assets/icons/screenshot-icon.png" link="#improper-screenshots":::
:::column-end::: :::column span="":::
- :::image type="icon" source="../../../assets/icons/compliance-icon.png" link="#microsoft-365-app-compliance-program":::
+ :::image type="icon" source="../../../assets/icons/mismatch-pc-app-manifest-icon.png" link="#mismatch-between-partner-center-and-app-manifest":::
:::column-end::: :::row-end::: :::row::: :::column:::
- :::image type="icon" source="../../../assets/icons/app-guideline-icon.png" link="#violation-of-app-icon-guidelines":::
- :::column-end:::
- :::column span="":::
- :::image type="icon" source="../../../assets/icons/app-name-icon.png" link="#app-name":::
- :::column-end:::
:::column span="":::
- :::image type="icon" source="../../../assets/icons/support-link-icon.png" link="#support-link":::
+ :::image type="icon" source="../../../assets/icons/domain-icon.png" link="#valid-domains-guidelines-violation":::
:::column-end::: :::column span="":::
- :::image type="icon" source="../../../assets/icons/schema-icon.png" link="#app-manifest-schema":::
+ :::image type="icon" source="../../../assets/icons/testability-icon.png" link="#missing-or-incomplete-test-instructions":::
:::column-end::: :::column span="":::
- :::image type="icon" source="../../../assets/icons/app-ui-icon.png" link="#app-ui":::
+ :::image type="icon" source="../../../assets/icons/non-functional-bot-icon.png" link="#non-functional-or-partially-functional-bots":::
:::column-end::: :::row-end::: :::row::: :::column:::
- :::image type="icon" source="../../../assets/icons/domain-icon.png" link="#valid-domains":::
- :::column-end:::
:::column span="":::
- :::image type="icon" source="../../../assets/icons/localization-icon.png" link="#localization-information":::
+ :::image type="icon" source="../../../assets/icons/app-functionality-icon.png" link="#broken-app-functionality":::
:::column-end::: :::column span="":::
- :::image type="icon" source="../../../assets/icons/developer-name-icon.png" link="#provider-or-developer-name-mismatch":::
+ :::image type="icon" source="../../../assets/icons/mobile-icon.png" link="#suboptimal-mobile-experience":::
:::column-end::: :::column span="":::
- :::image type="icon" source="../../../assets/icons/privacy-policy-icon.png" link="#privacy-policy":::
- :::column-end:::
- :::column span="":::
- :::image type="icon" source="../../../assets/icons/terms-of-use-icon.png" link="#terms-of-use":::
+ :::image type="icon" source="../../../assets/icons/ai-generated-content-icon.png" link="#apps-using-ai-generated-content-with-no-safeguards":::
:::column-end::: :::row-end:::
-## Broken links, functional bugs, app crashes, and unexpected errors
-
-Test your app to verify your appΓÇÖs correctness, functionality, and usage. Ensure that you test your app thoroughly, check all the end to end workflows that your app supports, test the app compatibility on the operating systems and browsers as per the [Commercial Marketplace Certification policy](/legal/marketplace/certification-policies), and fix all the bugs. You must avoid the following mistakes in your app before you submit for review:
-
-* Broken links in an app.
-
-* Functional bugs that block app usage.
-
- :::image type="content" source="../../../assets/images/submission/validation-common-reasons-functional-bugs-fail-block-app-usage.png" alt-text="Screenshot of failed functional bug for block app usage.":::
-
-* App crashes.
-
- :::image type="content" source="../../../assets/images/submission/validation-common-reason-failed-app-crashes.png" alt-text="Screenshot of failed scenario of app crashes while testing.":::
-
-* Continuous loading of app surfaces that prevent completion of stated workflows that the app supports.
-
- :::image type="content" source="../../../assets/images/submission/validation-common-reason-fail-continuous-app.png" alt-text="Screenshot of image for failed loading of app surfaces.":::
-
-* Unexpected error messages during the app usage, sign in, and sign-up experience and for scenarios where the app feature doesn't work as expected.
-
- :::image type="content" source="../../../assets/images/submission/validation-common-reasons-unexpected-error-app-usage.png" alt-text="Screenshot to show the unexpected error message during app usage.":::
-
-* Ensure that your app is complete and ready to publish before you submit for review.
-
-[Back to top](#common-reasons-for-app-validation-failure)
-
-## App description
-
-A great description can make your app stand out in the Teams Store and help encourage customers to download it. You must avoid the following mistakes in your app description:
-
- :::image type="content" source="../../../assets/images/submission/validation-common-reason-pass-grammatical-error.png" alt-text="Screenshot of passed image for long description, grammatical errors and capitalization":::
-
- :::image type="content" source="../../../assets/images/submission/validation-common-reason-fail-grammatical-error.png" alt-text="Screenshot of failed image for long description, grammatical errors and capitalization":::
-
- :::image type="content" source="../../../assets/images/submission/validation-common-reason-fail-app-description-truncation.png" alt-text="Screenshot of failed scenario of app description guidelines, which has incomplete truncation":::
-
- :::image type="content" source="../../../assets/images/submission/validation-common-reasons-pass-inadequate-app-description.png" alt-text="Screenshot to show the pass scenarios with inadequate app description.":::
-
- :::image type="content" source="../../../assets/images/submission/validation-common-reasons-fail-inadequate-app-description.png" alt-text="Screenshot to show the failed scenarios with inadequate app description.":::
-
-* Way forward information for new users such as, Sign Up or Get Started, or Help and Contact Us links aren't included in the app manifest (previously called Teams app manifest) and AppSource full description.
-
- :::image type="content" source="../../../assets/images/submission/validation-common-reason-pass-sign-up-app-description.png" alt-text="Screenshot of passed scenario of sign-up, contact details in app description must be hyperlinked.":::
-
- :::image type="content" source="../../../assets/images/submission/validation-common-reason-sign-up-app-description.png" alt-text="Screenshot of failed scenario of sign-up, contact details in app description must be hyperlinked.":::
-
-* Region specific app name or functionality isn't called out in app manifest and Partner Center app descriptions.
-
- :::image type="content" source="../../../assets/images/submission/validation-common-reasons-region-specific-pass-app.png" alt-text="Screenshot shows an example for pass scenario of region specific app name.":::
-
- :::image type="content" source="../../../assets/images/submission/validation-common-reasons-region-specific-app.png" alt-text="Screenshot shows an example for failed scenario of region specific app name.":::
-
-* Limitations or account dependency on external accounts or services to complete Sign-In, Sign-Out, and Sign-Up experience aren't called out in the app manifest and long description.
-
- :::image type="content" source="../../../assets/images/submission/validation-common-reason-passed-limitation-called-out.png" alt-text="Screenshot of passed image to show the called out limitations.":::
-
- :::image type="content" source="../../../assets/images/submission/validation-common-reason-failed-limitation-called-out.png" alt-text="Screenshot of failed image to show the called out limitations.":::
-
-* Short and full description in the app manifest doesn't highlight the appΓÇÖs value proposition.
-
-* Supported app features aren't updated.
-
-* App comparison with another app.
-
- :::image type="content" source="../../../assets/images/submission/validation-common-reason-failed-comparsion-app-description.png" alt-text="Screenshot of failed image of comparative app description":::
-
-* References to the integrations, which aren't part of app functionality.
-
-* Grammatical errors.
-
-* App short and full description are same.
-
-[Back to top](#common-reasons-for-app-validation-failure)
-
-## Violation of Microsoft trademark and brand guidelines
-
-MicrosoftΓÇÖs brand assets including logos, icons, designs, trade dress, fonts, product names, services, sounds, emojis, and any other brand features and elements, whether registered or unregistered are proprietary assets owned by Microsoft and its group of companies.
-
-When referring to Microsoft trademarks, products names, and services, you must follow [Microsoft Trademark and Brand Guidelines](https://www.microsoft.com/legal/intellectualproperty/trademarks). You must avoid the following common violations that lead to app rejection:
-
-* Abbreviating Microsoft as MS or MSFT in the offer listing, referencing the first instance of Microsoft Teams in the offer listing as **Teams** instead of **Microsoft Teams**.
-
- :::image type="content" source="../../../assets/images/submission/validation-common-reason-failed-MS-app-description.png" alt-text="Screenshot of failed image of Microsoft or MS in app description.":::
-
- :::image type="content" source="../../../assets/images/submission/validation-common-reason-failed-first-reference-teams.png" alt-text="Screenshot of image to show the failed reference instance of Microsoft Teams.":::
-
-* Using Microsoft brand assets in the offer content without an express license from Microsoft.
-
-* Creating an offer listing (including the offer description, title, icon, screenshots, and videos) that impersonates or provides an impression that it's an official Microsoft app for the Teams Store.
-
- :::image type="content" source="../../../assets/images/submission/validation-common-reason-pass-long-description.png" alt-text="Screenshot of image to show passed scenario of long description of Microsoft.":::
-
- :::image type="content" source="../../../assets/images/submission/validation-common-reason-fail-long-description.png" alt-text="Screenshot of image to show failed scenario of long description of Microsoft.":::
-
-[Back to top](#common-reasons-for-app-validation-failure)
-
-## Testability
-
- [Detailed test instructions](prepare/teams-store-validation-guidelines.md#app-package-and-teams-store-listing) and credentials help you with a successful review of your app.
-
-Ensure that you provide all the details required to review your app in the Notes for Certification Information section of Partner Center, valid demo credentials for features that require sign in and instructions to set any special configuration, a demo video or hardware for features that require an environment that is hard to replicate and complete. Also, ensure that you provide the latest contact information.
-
-You must avoid the following issues that occur in 20% of apps that are rejected during app review:
-
-* No Test instructions or credentials to test the app.
-
-* Only one test account provided when there's a dependency with two test accounts to test collaboration scenarios.
-
-* The provided test instructions and credentials aren't sufficient to complete app functional testing.
-
-[Back to top](#common-reasons-for-app-validation-failure)
-
-## Microsoft 365 App Compliance Program
-
-The Microsoft 365 App Compliance Program helps organizations assess and manage risk by evaluating security and compliance information about an app. You **must complete** [Publisher Verification](/azure/active-directory/develop/mark-app-as-publisher-verified) before you submit your app for review to publish on the Teams Store.
-
- :::image type="content" source="../../../assets/images/submission/validation-common-reason-pass-AAD-consent.png" alt-text="Screenshot of passed image of Microsoft Entra consent dialog.":::
-
-[Back to top](#common-reasons-for-app-validation-failure)
-
-## Violation of app icon guidelines
-
-Icons are one of the main elements people see when browsing the Teams Store. Your icons must communicate your app's brand and purpose while adhering to [App Icon guidelines](../../build-and-test/apps-package.md#app-icons). You must avoid the following violations that result in app rejection:
-
-* App submissions that contain app packages with different color and outline icons or non-white and non-transparent outline icons.
-
- :::image type="content" source="../../../assets/images/submission/validation-common-reason-pass-color-icon-outline.png" alt-text="Screenshot of image to show the passed scenario of color icon and outline icon.":::
-
- :::image type="content" source="../../../assets/images/submission/validation-common-reason-fail-color-icon-outline.png" alt-text="Screenshot of image to show the failed scenario of color icon and outline icon.":::
-
-* App submissions with different logos in Partner Center and the app package submitted for review.
-
- :::image type="content" source="../../../assets/images/submission/validation-common-reason-fail-partner-center-manifest-different.png" alt-text="Screenshot to show the failed scenario of partner center and manifest, which are different.":::
-
-[Back to top](#common-reasons-for-app-validation-failure)
-
-## App name
-
-Your app name plays a critical role for users to discover your app on the Teams Store. Ensure that your app name meets [app name guidelines](prepare/teams-store-validation-guidelines.md#app-name) and doesn't violate the [Microsoft Trademark and Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks). You must avoid the following violations that result in app rejection:
-
-* Inconsistent usage of app name throughout the appΓÇÖs functionality.
-
- :::image type="content" source="../../../assets/images/submission/validation-common-reason-pass-inconsistent-app-functionality.png" alt-text="Screenshot of image to show the pass scenario for inconsistent usage of app name in app's functionality.":::
-
- :::image type="content" source="../../../assets/images/submission/validation-common-reason-fail-inconsistent-app-functionality.png" alt-text="Screenshot of image to show the fail scenario for inconsistent usage of app name in app's functionality.":::
-
-* Mismatch between the app name mentioned in the app manifest submitted as part of the app package and Partner Center.
-
-* App names appended with *Beta*, *Dev*, and *Prod* to indicate app isn't production ready.
-
- :::image type="content" source="../../../assets/images/submission/validation-common-reason-pass-app-name-beta-app-production.png" alt-text="Screenshot of image to show passed scenario of app names with beta, dev and prod.":::
-
- :::image type="content" source="../../../assets/images/submission/validation-common-reason-fail-app-name-beta-app-production.png" alt-text="Screenshot of image to show failed scenario of app names with beta, dev and prod.":::
-
-* App submissions where the developer has changed the app name, but the old app name is still used within the app.
-
- :::image type="content" source="../../../assets/images/submission/validation-common-reason-fail-old-app-name.png" alt-text="Screenshot of image to show failed app submission for old app name, which is still used.":::
-
-[Back to top](#common-reasons-for-app-validation-failure)
-
-## Support link
-
- Support links must not ask users for authentication and must lead directly to appropriate support information. You must ensure that your app includes a valid support link for users to contact.
-
- :::image type="content" source="../../../assets/images/submission/validation-common-reason-pass-support-link.png" alt-text="Screenshot of image for passed support link containing contacts.":::
-
- :::image type="content" source="../../../assets/images/submission/validation-common-reason-failed-support-link.png" alt-text="Screenshot of image for invalid support link.":::
-
- :::image type="content" source="../../../assets/images/submission/validation-common-reason-failed-support-link-authentication.png" alt-text="Screenshot of image for invalid support link with authentication.":::
-
- :::image type="content" source="../../../assets/images/submission/validation-common-reason-failed-support-link-insecure.png" alt-text="Screenshot of image for invalid support link is insecure.":::
-
-[Back to top](#common-reasons-for-app-validation-failure)
-
-## App manifest schema
-
-The app manifest describes how the app integrates into the Microsoft Teams product. Your app manifest must conform to a publicly released [app manifest schema](../../../resources/schem). If your app supports localization, ensure that use a localization app manifest schema version 1.5 or later. App packages that contain preview schemas (not publicly released) fail app review.
-
-You must update the app version declared in the app manifest if you're submitting an app update. It's recommended to always use the latest publicly released app manifest schema when submitting a new app or an app update and ensure that the app manifest schema version in Teams Store and Microsoft AppSource is the same.
-
- :::image type="content" source="../../../assets/images/submission/validation-common-reason-pass-app-version-number.png" alt-text="Screenshot to show the app version number incremented.":::
-
-Your app package must only contain your appΓÇÖs manifest, color icon, and outline icon. App packages that contain any other additional files or folders fail app review.
-
-[Back to top](#common-reasons-for-app-validation-failure)
-
-## App UI
-
-Your appΓÇÖs UI must not look incomplete and should be intuitive. Ensure that users aren't presented with a blank screen when performing an action on the AppΓÇÖs UI. Apps that have truncated or overlapping content and apps that display broken images fail app review.
-
- :::image type="content" source="../../../assets/images/submission/validation-common-reason-fail-overlap-content.png" alt-text="Screenshot of image failed while overlapping the app.":::
-
- :::image type="content" source="../../../assets/images/submission/validation-common-reason-failed-blank-screen-app-UI.png" alt-text="Screenshot of image to show the fail of blank screen in app's UI.":::
-
- :::image type="content" source="../../../assets/images/submission/validation-common-reason-pass-undo-app-UI.png" alt-text="Screenshot to show the pass scenario of undo button in app UI.":::
-
- :::image type="content" source="../../../assets/images/submission/validation-common-reason-fail-undo-app-UI.png" alt-text="Screenshot to show the fail scenario of undo button in app UI.":::
-
- :::image type="content" source="../../../assets/images/submission/validation-common-reason-fail-app-display-ads.png" alt-text="Screenshot to show that apps failed to display ads.":::
-
-[Back to top](#common-reasons-for-app-validation-failure)
-
-## Valid domains
-
-Your app submission must adhere to the [external domains](/legal/marketplace/certification-policies) guidelines under MicrosoftΓÇÖs Commercial Marketplace Certification Policy. For your app to pass review, ensure that the valid domains listed in the app manifest are under your organization's direct control.
-
-[Back to top](#common-reasons-for-app-validation-failure)
-
-## Localization information
-
-You must include the localized language files in your app package if your app supports localization. The localization files must conform to the [Teams localization schema](../../build-and-test/apps-localization.md). Apps that support localization but are missing localization information in the app manifest fail app review.
-
- :::image type="content" source="../../../assets/images/submission/validation-common-reason-failed-app-localization-manifest.png" alt-text="Screenshot of failed app that supports localization manifest.":::
-
-[Back to top](#common-reasons-for-app-validation-failure)
-
-## Provider or developer name mismatch
-
-You must ensure to provide the same developer name in your offer listing in both storefronts to avoid end-user confusion during the appΓÇÖs acquisition from the Teams Store or Microsoft AppSource. Offers with mismatch in developer name frequently fail app review.
-
-[Back to top](#common-reasons-for-app-validation-failure)
-
-## Privacy policy
-
-Your offer listing must include a valid privacy policy link. Offers with invalid, unsecured, and broken privacy policy links fail app review. Your privacy policy must follow the [privacy policy guidelines](prepare/teams-store-validation-guidelines.md#privacy-policy).
-
- :::image type="content" source="../../../assets/images/submission/validation-common-reason-failed-invalid-unsecure-broken-privacy-policy.png" alt-text="Screenshot to show the invalid, unsecure and broken privacy policy.":::
-
- :::image type="content" source="../../../assets/images/submission/validation-common-reason-failed-invalid-unsecure-broken-privacy-policy-links.png" alt-text="Screenshot to show the invalid, unsecure and broken privacy policy links.":::
-
-[Back to top](#common-reasons-for-app-validation-failure)
-
-## Terms of use
-
-Your offer listing must include a valid Terms of use link. Offers with invalid, unsecured, and broken Terms of use links fail app review. You must follow the [Terms of use guidelines](prepare/teams-store-validation-guidelines.md#terms-of-use).
+## Inadequate app description
- :::image type="content" source="../../../assets/images/submission/validation-common-reason-fail-terms-of-use.png" alt-text="Screenshot of image for failed terms of use in production ready.":::
+A great app description highlights your app's benefits and encourages customers to download it. The following table contains common mistakes in app descriptions that prevent apps from passing Teams Store submission process:
-[Back to top](#common-reasons-for-app-validation-failure)
+|   | Avoid the following |
+| | |
+|:::image type="icon" source="../../../assets/icons/caution-red.png" border="false":::| App manifest (previously called Teams app manifest) and AppSource full description don't contain hyperlinks for call-to-action buttons, such as **Sign Up**, **Get Started**, **Help**, or **Contact Us**. |
+|:::image type="icon" source="../../../assets/icons/caution-red.png" border="false":::| App manifest and long description don't mention any limitations or dependencies on external accounts or services required to complete sign-in, sign-out, and sign-up experiences. |
+|:::image type="icon" source="../../../assets/icons/caution-red.png" border="false":::| Contains abbreviated, shortened, or deprecated forms of standard Microsoft product names. For example, abbreviating **Microsoft** as **MS** or **MSFT**, referencing the first instance of Microsoft Teams as **Teams** instead of **Microsoft Teams**, or using **O365** instead of **Microsoft 365**.<br><br> When referring to Microsoft trademarks, products, and services, you must follow [Microsoft Trademark and Brand Guidelines](https://www.microsoft.com/legal/intellectualproperty/trademarks). |
+|:::image type="icon" source="../../../assets/icons/caution-red.png" border="false":::| Highlight of the appΓÇÖs value proposition and key features in the short and full descriptions in app manifest is absent. |
+|:::image type="icon" source="../../../assets/icons/caution-red.png" border="false":::| Contains typographical errors, grammatical errors, unnecessary capitalization, code, or duplicate content. |
+|:::image type="icon" source="../../../assets/icons/caution-red.png" border="false":::| Reference to products that the app supports like Teams, Outlook, and Microsoft 365 is absent. |
+|:::image type="icon" source="../../../assets/icons/caution-red.png" border="false":::| Contains comparative marketing content or competing offers in the app description or other metadata. |
+|:::image type="icon" source="../../../assets/icons/caution-red.png" border="false":::| Contains exaggerated claims about the app such as **#1**, **amazing**, or the **best**. |
-## Teams apps extensible across Microsoft 365
+For more information, see [Teams Store validation guidelines for app description](prepare/teams-store-validation-guidelines.md#app-descriptions).
-### Microsoft 365 re-branding
+## Improper screenshots
-Tab doesn't load or show an error page or message on the Microsoft 365 client when you replace the tab url from `www.office.com/` to `www.microsoft365.com/`.
+Screenshots provide a visually engaging way to portray your app's purpose and capabilities to potential customers. The following table contains common mistakes in screenshots that prevent apps from passing Teams Store submission process:
-### App functionality
+| &nbsp; | Avoid the following |
+| | |
+|:::image type="icon" source="../../../assets/icons/caution-red.png" border="false":::| Contains fewer than three screenshots depicting the app's functionalities. |
+|:::image type="icon" source="../../../assets/icons/caution-red.png" border="false":::| Screenshots of the app's functionality in Teams web, desktop, and mobile clients, if supported, are absent. |
+|:::image type="icon" source="../../../assets/icons/caution-red.png" border="false":::| Captions to help users clearly understand the app's features are absent. |
+|:::image type="icon" source="../../../assets/icons/caution-red.png" border="false":::| Screenshots to showcase the app in the context of a Teams tab, if the app supports tabs, are absent. |
-Your app must not have the following issues in Outlook and Microsoft 365 clients:
+For more information, see [Teams Store validation guidelines for screenshots](prepare/teams-store-validation-guidelines.md#screenshots).
-1. Functionality cross-parity isn't maintained or missing across Microsoft 365 clients.
+## Mismatch between Partner Center and app manifest
-1. Continuous loading indicator is visible in tabs for Teams apps extensible across Microsoft 365.
+If the following fields in the Partner Center and app manifest don't match, your app might not pass Teams Store submission:
-1. Blank screen is visible in tabs for Teams apps extensible across Microsoft 365.
+* App description
+* Developer name
+* Terms of Use
+* Privacy Policy URLs
+* App icons (color.png and outline.png)
+* App name
-1. Error message appears when adding an app for Teams apps extensible across Microsoft 365.
+For more information, see [Teams Store validation guidelines for app manifest](prepare/teams-store-validation-guidelines.md#app-manifest).
-1. A button doesn't perform the intended action upon selection, but it does after the session is refreshed.
+## Valid domains guidelines violation
-1. App requests for authentication in the Outlook client when switching between the tabs.
+Your app submission must adhere to the guidelines for [external domains](/legal/marketplace/certification-policies#114033-external-domains) under MicrosoftΓÇÖs Commercial Marketplace Certification Policy. For your app to pass review, ensure that the domains listed under the `validDomains` and `messageHandlers` arrays in app manifest are under your organization's direct control and don't include test or non-production domains.
-1. An intended feature in the Microsoft 365 client opens two browser instances upon selection.
+For more information, see [Teams Store validation guidelines for external domains](prepare/teams-store-validation-guidelines.md#external-domains).
-1. An intended feature in Teams apps extensible across Microsoft 365 shows an error message upon selection.
+## Missing or incomplete test instructions
-1. The content in the **Help** tab isn't publicly available to learn more about the app's offering. The app asks for authentication.
+Detailed test instructions and credentials help you with a successful review of your app. The following table contains common mistakes with test instructions and test accounts that prevent apps from passing Teams Store submission process:
-1. Sign out option isn't available within the tab.
+| &nbsp; | Avoid the following |
+| | |
+|:::image type="icon" source="../../../assets/icons/caution-red.png" border="false":::| Description of the functionalities of the current version of the app and the necessary configuration steps for testers to follow and test the app is missing. |
+|:::image type="icon" source="../../../assets/icons/caution-red.png" border="false":::| Test accounts provided are inaccessible to testers. For example, test accounts that require multifactor authentication to sign in. |
+|:::image type="icon" source="../../../assets/icons/caution-red.png" border="false":::| Test accounts provided don't support custom app upload. |
+|:::image type="icon" source="../../../assets/icons/caution-red.png" border="false":::| Multiple test accounts aren't included when the app supports collaborative scopes like teams, group chats, or meetings. |
-1. The content in the **Help** or **About** tab is only related to Teams clients.
+For more information, see [Teams Store validation guidelines for app package and Teams Store listing](prepare/teams-store-validation-guidelines.md#app-package-and-teams-store-listing).
-1. The tab has a duplicate header or logo.
+## Non-functional or partially functional bots
-1. The user is unable to revert the last action or doesn't have a back button to go to the previous work state.
+Follow the guidelines described in [Designing your Microsoft Teams bot](../../../bots/design/bots.md) while developing your bot app. Enable the bot to inform new users of your app's value adds and prerequisites to use the app. Plan and develop your bot to avoid dead ends even when the input from the user is irrelevant. The following table contains common mistakes with bots that prevent apps from passing Teams Store submission process:
-1. The content in the app is specific to Teams only.
+| &nbsp; | Avoid the following |
+| | |
+|:::image type="icon" source="../../../assets/icons/caution-red.png" border="false":::| Bot doesn't provide valid responses to the supported commands. |
+|:::image type="icon" source="../../../assets/icons/caution-red.png" border="false":::| Commands that your bot supports don't work correctly, including generic commands such as **Hi**, **Hello**, and **Help**. |
+|:::image type="icon" source="../../../assets/icons/caution-red.png" border="false":::| Bot doesn't consistently offer a valid response to users. |
+|:::image type="icon" source="../../../assets/icons/caution-red.png" border="false":::| Bot doesn't send a proactive welcome message as soon as the user installs the app and runs it for the first time. |
-1. The user is unable to login to the app in Outlook.
+For more information, see [Teams Store validation guidelines for bots](prepare/teams-store-validation-guidelines.md#bots-1).
-### App responsiveness
+## Broken app functionality
-You must avoid the following issues in your app before you submit for review:
+Test your app to verify its correctness, functionality, and usage. Ensure that you thoroughly test your app and fix all the bugs. Check all the end-to-end workflows that your app supports and test the app compatibility on the operating systems and browsers as per the Commercial Marketplace Certification policies. The following table contains common mistakes with app functionality that prevent apps from passing Teams Store submission process:
-1. Horizontal scroll bar is present in tabs.
+| &nbsp; | Avoid the following |
+| | |
+|:::image type="icon" source="../../../assets/icons/caution-red.png" border="false":::| App provides a broken experience to users in any of the workflows that it supports, such as broken links and app crashes. |
+|:::image type="icon" source="../../../assets/icons/caution-red.png" border="false":::| Functional bugs that prevent further app usage. |
+|:::image type="icon" source="../../../assets/icons/caution-red.png" border="false":::| Continuous loading of app surfaces that prevent completion of stated workflows that the app supports. |
+|:::image type="icon" source="../../../assets/icons/caution-red.png" border="false":::| Unexpected error messages during app usage where the app's feature doesn't work as expected. |
+|:::image type="icon" source="../../../assets/icons/caution-red.png" border="false":::| Have workflows where the user hits a dead end and can't navigate further in the app. |
+|:::image type="icon" source="../../../assets/icons/caution-red.png" border="false":::| Teams app extended to Outlook and Microsoft 365 doesn't provide value to the user in Outlook or Microsoft 365. |
+|:::image type="icon" source="../../../assets/icons/caution-red.png" border="false":::| App redirects users away from Teams and doesn't provide necessary disclaimers about navigation outside Teams through links and buttons. |
-1. App has truncated content.
+For more information, see [Teams Store validation guidelines for general functionality and performance](prepare/teams-store-validation-guidelines.md#general-functionality-and-performance).
-1. App isn't responsive to 100 percent screen resolution.
+## Suboptimal mobile experience
-### App package and Teams Store listing (metadata and app manifest)
+Your app's experience must be consistent across Teams web, desktop, and mobile clients. Hide workflows that your app doesn't support by identifying the platform and the relevant issue. The following table contains common mistakes in mobile experience that prevent apps from passing Teams Store submission process:
-You must avoid the following issues in your app before you submit for review:
+| &nbsp; | Avoid the following |
+| | |
+|:::image type="icon" source="../../../assets/icons/caution-red.png" border="false":::| Consumable and unbroken experience on the app's mobile version is absent. |
+|:::image type="icon" source="../../../assets/icons/caution-red.png" border="false":::| Graceful failure if the app isn't supporting a particular workflow is missing. |
+|:::image type="icon" source="../../../assets/icons/caution-red.png" border="false":::| Data truncation or overlapping within the app. |
+|:::image type="icon" source="../../../assets/icons/caution-red.png" border="false":::| Contains less than optimal user experience features like horizontal scroll. |
-* App listing screenshots are only relevant to the Teams client.
+For more information, see [Teams Store validation guidelines for mobile experience](prepare/teams-store-validation-guidelines.md#mobile-experience).
-* App description in the app manifest or metadata is only relevant to the Teams client.
+## Apps using AI-generated content with no safeguards
-* App has incorrect reference to the Teams app extensible across Microsoft 365.
+If your app uses AI-generated content, ensure that it meets the requirements for [Apps with AI-generated content](/legal/marketplace/certification-policies#1-apps-with-artificial-intelligenceai-generated-content-must-meet-below-requirements) as per Microsoft commercial marketplace certification policies. The following table contains common mistakes with AI-generated content that prevent apps from passing Teams Store submission process:
-* Support URL, privacy policy, or terms of use content in the app manifest or metadata is only relevant to the Teams client.
+| &nbsp; | Avoid the following |
+| | |
+|:::image type="icon" source="../../../assets/icons/caution-red.png" border="false":::| An in-context indication that the appΓÇÖs content is AI-generated is absent. |
+|:::image type="icon" source="../../../assets/icons/caution-red.png" border="false":::| Users are unable to report objectionable content generated by the AI in the app. |
+|:::image type="icon" source="../../../assets/icons/caution-red.png" border="false":::| Moderation of the AI-generated content to provide a safe workplace environment for users is absent. |
-[Back to top](#common-reasons-for-app-validation-failure)
+For more information, see [Teams Store validation guidelines for apps with AI-generated content](prepare/teams-store-validation-guidelines.md#apps-with-ai-generated-content).
## See also * [Distribute your Microsoft Teams app](../apps-publish-overview.md) * [Publish your app to the Microsoft Teams Store](publish.md) * [Microsoft Teams Store validation guidelines](prepare/teams-store-validation-guidelines.md)
-* [Commercial Marketplace Certification policies](/legal/marketplace/certification-policies)
+* [Commercial marketplace certification policies](/legal/marketplace/certification-policies)
* [Microsoft Trademark and Brand Guidelines](https://www.microsoft.com/legal/intellectualproperty/trademarks)
platform Glossary https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/get-started/glossary.md
Common terms and definitions used in Microsoft Teams developer documentation.
| [Microsoft Teams Store](../concepts/deploy-and-publish/appsource/publish.md) | A Teams Store landing page that brings apps to users in a single place. The apps are categorized by usage, industry, and more. An app must follow Teams Store validation guidelines and obtain an approval before it's available to users via the Teams Store. <br>**See also**: [Teams Store validation guidelines](#s); [Microsoft Store](#m) | | [Teams workbench](../sbs-gs-spfx.yml) | A workbench in VS Code used at build for Teams apps created using SPFx and Teams Toolkit. <br>**See also**: [Workbench](#w); [Local workbench](#l) | | [Tenant ID](../bots/how-to/authentication/bot-sso-register-aad.md) | The unique identifier of the tenant where your app is registered in Microsoft Entra admin center. Your app may be classified as a single-tenant or a multitenant app. <br> **See also**: [Single-tenant app](#s); [Multitenant apps](#m) |
-| [Terms of use](../concepts/deploy-and-publish/appsource/common-reasons-for-app-validation-failure.md#terms-of-use) | These terms of use govern your access to and use of Azure Marketplace, AppSource, and any Microsoft owned or operated online storefronts that point to offers cataloged by Azure Marketplace or AppSource. Your offer listing must include a valid Terms of use link. Offers with invalid, unsecured, and broken Terms of use links fail app review.|
+| [Terms of use](../concepts/deploy-and-publish/appsource/prepare/teams-store-validation-guidelines.md#terms-of-use) | These terms of use govern your access to and use of Azure Marketplace, AppSource, and any Microsoft owned or operated online storefronts that point to offers cataloged by Azure Marketplace or AppSource. Your offer listing must include a valid Terms of use link. Offers with invalid, unsecured, and broken Terms of use links fail app review.|
| [Token exchange URL](../bots/how-to/authentication/bot-sso-register-aad.md) | It's the application ID URI that is used for exchanging token. It's configured while configuring the OAuth connection for bot resource. <br> **See also**: [Application ID URI](#u); [SSO](#s) | | [TokenExchangeResource property](../bots/how-to/authentication/bot-sso-code.md) | It's a property of `OAuthCard` class that gets or sets the resource to try to perform token exchange with. Teams refreshes the token if the `TokenExchangeResource` property is populated on the card. <br> **See also**: [OAuth card](#o); [SSO](#s) <br> For more information, see [Microsoft Bot Schema 4.0](/dotnet/api/microsoft.bot.schema.oauthcard) | | [TeamsSSOTokenExchangeMiddleware](../bots/how-to/authentication/bot-sso-code.md) | This middleware exchanges the token if the activity name is `signin` or `tokenExchange`. It also ensures only one exchange request is processed. <br> **See also**: [SSO](#s) |
platform Whats New https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/whats-new.md
Discover Microsoft Teams platform features that are generally available (GA). Yo
Teams platform features that are available to all app developers.
-**2024 March**
+**2024 April**
-* ***March 27, 2024***: [Configure Teams deep links using the msteams:// and https:// protocol handlers.](concepts/build-and-test/deep-links.md#protocol-handlers-in-deep-links)
-* ***March 26, 2024***: [Adaptive Cards resposive layout helps you to design cards to look great on any device in order to provide an enhanced user experience across chat, channels, and meeting chat.](task-modules-and-cards/cards/cards-format.md#adaptive-card-responsive-layout)
-* ***March 07, 2024***: [Introduced Adaptive Card Previewer to view the realtime changes for Visual Studio 2022.](concepts/build-and-test/adaptive-card-previewer-vs.md)
-* ***March 07, 2024***: [Introduced Teams App Test Tool that streamlines the debug process of bot-based apps for Visual Studio 2022.](toolkit/toolkit-v4/debug-your-Teams-app-test-tool-vs.md)
+***April 3, 2024***: [Updated the common reasons for app validation failure to help your app pass the Teams Store submission process.](concepts/deploy-and-publish/appsource/common-reasons-for-app-validation-failure.md)
:::column-end::: :::row-end:::
Teams platform features that are available to all app developers.
| **Date** | **Update** | **Find here** | | -- | | -|
+|27/03/2024|Configure Teams deep links using the msteams:// and https:// protocol handlers.|Integrate with Teams > Create deep links > Overview > [Protocol handlers in deep links](concepts/build-and-test/deep-links.md#protocol-handlers-in-deep-links)|
+|26/03/2024|Adaptive Cards responsive layout helps you to design cards to look great on any device in order to provide an enhanced user experience across chat, channels, and meeting chat.|Build cards and dialogs > Build cards > Format cards in Microsoft Teams > [Adaptive Card responsive layout](task-modules-and-cards/cards/cards-format.md#adaptive-card-responsive-layout)|
+|07/03/2024|Introduced Adaptive Card Previewer to view the realtime changes for Visual Studio 2022.|Tools and SDKs > Tools > [Adaptive Card Previewer for Visual Studio](concepts/build-and-test/adaptive-card-previewer-vs.md)|
+|07/03/2024|Introduced Teams App Test Tool that streamlines the debug process of bot-based apps for Visual Studio 2022.|Tools and SDKs > Tools > Teams Toolkit for Visual Studio > Prepare to build apps using Teams Toolkit > Debug your Teams app > [Debug bot using Teams App Test Tool](toolkit/toolkit-v4/debug-your-Teams-app-test-tool-vs.md)|
|28/02/2024|Extend a Teams meeting app to work with Outlook.|Extend your app across Microsoft 365 > [Extend a Teams meeting app to Outlook](m365-apps/extend-m365-meeting-app.md)| |28/02/2024|Design Teams app lightbox view to emphasize important information.|Design your app > UI components > [Lightbox view](concepts/design/design-teams-app-light-box-view.md)| |15/02/2024|Share to Teams from personal app or tab for mobile clients.|Integrate with Teams > Share to Teams > [Share to Teams from personal app or tab](concepts/build-and-test/share-to-teams-from-personal-app-or-tab.md)|
Developer preview is a public program that provides early access to unreleased T
</details> </br>
-<details>
-<summary><b>2024</b></summary>
-
-| **Date** | **Update** | **Find here** |
-| -- | | -|
-|25/01/2024| Actions help to integrate your app into your user's workflow by enabling easy discoverability and seamless interaction with the content. | Extend your app across Microsoft 365 > [Actions in Microsoft 365](m365-apps/actions-in-m365.md)|
-|12/01/2024| Introduced Teams Toolkit command line interface v3. | [Teams Toolkit command line interface](toolkit/Teams-Toolkit-CLI.md)|
-
-</details>
-</br>
- <details> <summary><b>2023</b></summary>