Validate a Manifest for add in

Mohammad Albakri 0 Reputation points
2025-11-03T11:05:48.66+00:00

Hello,

Whenever I add VersionOverrides to the manifest I keep getting same errors when I validate the manifest I have tried everything but still nothing works, is there another way to know the exact reason other than validating the manifest and what could cause this ?

Error #1:

Package Type Not Identified: We could not recognize any supported add-in type

Error #2:

Wrong Package: Your package does not match submission type.

The manifest is not valid.

<!-- Permissions & activation -->

<Permissions>ReadWriteMailbox</Permissions>

<Rule xsi:type="RuleCollection" Mode="Or">

<Rule xsi:type="ItemIs" ItemType="Message" FormType="Read"/>

<Rule xsi:type="ItemIs" ItemType="Message" FormType="Edit"/>

</Rule>

<!-- Add-in Commands (outer Mail v1.0) -->

<VersionOverrides

  xmlns="http://schemas.microsoft.com/office/mailappversionoverrides"

  xsi:type="VersionOverridesV1_0">

<Requirements>

  <bt:Sets DefaultMinVersion="1.1">

    <bt:Set Name="Mailbox"/>

  </bt:Sets>

</Requirements>

<Hosts>

  <Host xsi:type="Mailbox">

    <DesktopFormFactor>

      <!-- Function file with your command handlers -->

      <FunctionFile resid="residFunctionFileUrl"/>

      <!-- READ ribbon -->

      <ExtensionPoint xsi:type="MessageReadCommandSurface">

        <OfficeTab id="TabDefault">

          <Group id="oai_group_read">

            <Label resid="residGroupLabel"/>

            <Icon>

              <bt:Image size="16" resid="residIcon16"/>

              <bt:Image size="32" resid="residIcon32"/>

              <bt:Image size="80" resid="residIcon80"/>

            </Icon>

            <Control xsi:type="Button" id="btnOpenAssistantRead">

              <Label resid="residButtonOpen"/>

              <Supertip>

                <Title resid="residButtonOpen"/>

                <Description resid="residSuperTipOpen"/>

              </Supertip>

              <Icon>

                <bt:Image size="16" resid="residIcon16"/>

                <bt:Image size="32" resid="residIcon32"/>

                <bt:Image size="80" resid="residIcon80"/>

              </Icon>

              <Action xsi:type="ShowTaskpane">

                <SourceLocation resid="residTaskPaneUrl"/>

              </Action>

            </Control>

            <Control xsi:type="Button" id="btnSummarizeRead">

              <Label resid="residButtonSummarizeRead"/>

              <Supertip>

                <Title resid="residButtonSummarizeRead"/>

                <Description resid="residSuperTipSummarizeRead"/>

              </Supertip>

              <Icon>

                <bt:Image size="16" resid="residIcon16"/>

                <bt:Image size="32" resid="residIcon32"/>

                <bt:Image size="80" resid="residIcon80"/>

              </Icon>

              <Action xsi:type="ShowTaskpane">

                <SourceLocation resid="residTaskPaneUrl"/>

              </Action>

            </Control>

            <Control xsi:type="Button" id="btnGreetingRead">

              <Label resid="residButtonGreeting"/>

              <Supertip>

                <Title resid="residButtonGreeting"/>

                <Description resid="residSuperTipGreeting"/>

              </Supertip>

              <Icon>

                <bt:Image size="16" resid="residIcon16"/>

                <bt:Image size="32" resid="residIcon32"/>

                <bt:Image size="80" resid="residIcon80"/>

              </Icon>

              <Action xsi:type="ShowTaskpane">

                <SourceLocation resid="residTaskPaneUrl"/>

              </Action>

            </Control>

            <Control xsi:type="Button" id="btnGrammarRead">

              <Label resid="residButtonGrammar"/>

              <Supertip>

                <Title resid="residButtonGrammar"/>

                <Description resid="residSuperTipGrammar"/>

              </Supertip>

              <Icon>

                <bt:Image size="16" resid="residIcon16"/>

                <bt:Image size="32" resid="residIcon32"/>

                <bt:Image size="80" resid="residIcon80"/>

              </Icon>

              <Action xsi:type="ShowTaskpane">

                <SourceLocation resid="residTaskPaneUrl"/>

              </Action>

            </Control>

          </Group>

        </OfficeTab>

      </ExtensionPoint>

      <!-- COMPOSE ribbon -->

      <ExtensionPoint xsi:type="MessageComposeCommandSurface">

        <OfficeTab id="TabDefault">

          <Group id="oai_group_compose">

            <Label resid="residGroupLabel"/>

            <Icon>

              <bt:Image size="16" resid="residIcon16"/>

              <bt:Image size="32" resid="residIcon32"/>

              <bt:Image size="80" resid="residIcon80"/>

            </Icon>

            <Control xsi:type="Button" id="btnOpenAssistantCompose">

              <Label resid="residButtonOpen"/>

              <Supertip>

                <Title resid="residButtonOpen"/>

                <Description resid="residSuperTipOpen"/>

              </Supertip>

              <Icon>

                <bt:Image size="16" resid="residIcon16"/>

                <bt:Image size="32" resid="residIcon32"/>

                <bt:Image size="80" resid="residIcon80"/>

              </Icon>

              <Action xsi:type="ShowTaskpane">

                <SourceLocation resid="residTaskPaneUrl"/>

              </Action>

            </Control>

            <Control xsi:type="Button" id="btnSummarizeCompose">

              <Label resid="residButtonSummarizeCompose"/>

              <Supertip>

                <Title resid="residButtonSummarizeCompose"/>

                <Description resid="residSuperTipSummarizeCompose"/>

              </Supertip>

              <Icon>

                <bt:Image size="16" resid="residIcon16"/>

                <bt:Image size="32" resid="residIcon32"/>

                <bt:Image size="80" resid="residIcon80"/>

              </Icon>

              <Action xsi:type="ShowTaskpane">

                <SourceLocation resid="residTaskPaneUrl"/>

              </Action>

            </Control>

            <Control xsi:type="Button" id="btnGreetingCompose">

              <Label resid="residButtonGreeting"/>

              <Supertip>

                <Title resid="residButtonGreeting"/>

                <Description resid="residSuperTipGreeting"/>

              </Supertip>

              <Icon>

                <bt:Image size="16" resid="residIcon16"/>

                <bt:Image size="32" resid="residIcon32"/>

                <bt:Image size="80" resid="residIcon80"/>

              </Icon>

              <Action xsi:type="ShowTaskpane">

                <SourceLocation resid="residTaskPaneUrl"/>

              </Action>

            </Control>

            <Control xsi:type="Button" id="btnGrammarCompose">

              <Label resid="residButtonGrammar"/>

              <Supertip>

                <Title resid="residButtonGrammar"/>

                <Description resid="residSuperTipGrammar"/>

              </Supertip>

              <Icon>

                <bt:Image size="16" resid="residIcon16"/>

                <bt:Image size="32" resid="residIcon32"/>

                <bt:Image size="80" resid="residIcon80"/>

              </Icon>

              <Action xsi:type="ShowTaskpane">

                <SourceLocation resid="residTaskPaneUrl"/>

              </Action>

            </Control>

          </Group>

        </OfficeTab>

      </ExtensionPoint>

    </DesktopFormFactor>

  </Host>

</Hosts>

<!-- Resources -->

<Resources>

  <bt:Images>

    <bt:Image id="residIcon16" DefaultValue="https://outlook-ai-assistant-web.azurewebsites.net/icons/icon-16.png"/>

    <bt:Image id="residIcon32" DefaultValue="https://outlook-ai-assistant-web.azurewebsites.net/icons/icon-32.png"/>

    <bt:Image id="residIcon80" DefaultValue="https://outlook-ai-assistant-web.azurewebsites.net/icons/icon-80.png"/>

  </bt:Images>

  <bt:Urls>

    <bt:Url id="residTaskPaneUrl" DefaultValue="https://outlook-ai-assistant-web.azurewebsites.net/taskpane.html"/>

    <bt:Url id="residFunctionFileUrl" DefaultValue="https://outlook-ai-assistant-web.azurewebsites.net/commands.html"/>

  </bt:Urls>

  <bt:ShortStrings>

    <bt:String id="residGroupLabel" DefaultValue="AI Assistant"/>

    <bt:String id="residButtonOpen" DefaultValue="Open Assistant"/>

    <bt:String id="residButtonSummarizeRead" DefaultValue="Summarize"/>

    <bt:String id="residButtonSummarizeCompose" DefaultValue="Summarize Draft"/>

    <bt:String id="residButtonGreeting" DefaultValue="Insert Greeting"/>

    <bt:String id="residButtonGrammar" DefaultValue="Check Grammar"/>

  </bt:ShortStrings>

  <bt:LongStrings>

    <bt:String id="residSuperTipOpen" DefaultValue="Open the taskpane with summarization, greeting, and grammar tools."/>

    <bt:String id="residSuperTipSummarizeRead" DefaultValue="Summarize the selected email."/>

    <bt:String id="residSuperTipSummarizeCompose" DefaultValue="Summarize your draft message."/>

    <bt:String id="residSuperTipGreeting" DefaultValue="Insert a context-aware greeting."/>

    <bt:String id="residSuperTipGrammar" DefaultValue="Check grammar and tone."/>

  </bt:LongStrings>

</Resources>

<!-- INNER Mail v1.1 (pinnable, etc.) -->

<VersionOverrides

    xmlns="http://schemas.microsoft.com/office/mailappversionoverrides/1.1"

    xsi:type="VersionOverridesV1_1">

  <Hosts>

    <Host xsi:type="Mailbox">

      <DesktopFormFactor>

        <ExtensionPoint xsi:type="MessageReadCommandSurface">

          <OfficeTab id="TabDefault">

            <Group id="oai_group_read_v11">

              <Label resid="residGroupLabel"/>

              <Control xsi:type="Button" id="btnOpenAssistantRead_v11">

                <Label resid="residButtonOpen"/>

                <Supertip>

                  <Title resid="residButtonOpen"/>

                  <Description resid="residSuperTipOpen"/>

                </Supertip>

                <Icon>

                  <bt:Image size="16" resid="residIcon16"/>

                  <bt:Image size="32" resid="residIcon32"/>

                  <bt:Image size="80" resid="residIcon80"/>

                </Icon>

                <Action xsi:type="ShowTaskpane">

                  <SourceLocation resid="residTaskPaneUrl"/>

                  <SupportsPinning>true</SupportsPinning>

                </Action>

              </Control>

            </Group>

          </OfficeTab>

        </ExtensionPoint>

      </DesktopFormFactor>

    </Host>

  </Hosts>

</VersionOverrides>

</VersionOverrides>

</OfficeApp>

Developer technologies | XAML
Developer technologies | XAML
A language based on Extensible Markup Language (XML) that enables developers to specify a hierarchy of objects with a set of properties and logic.
0 comments No comments
{count} votes

1 answer

Sort by: Most helpful
  1. Michael Le (WICLOUD CORPORATION) 6,925 Reputation points Microsoft External Staff Moderator
    2025-11-04T08:30:15.39+00:00

    Hello @Mohammad Albakri ,

    Based on the code snippets you've shared, the structure appears correct on its own. However, since you are still encountering validation errors, the issue likely lies in how these snippets connect with the rest of your manifest file.

    Often, these errors occur when the manifest defines activation rules for older clients but is missing the corresponding <formsettings> section.

    For your reference, you can compare your file against the official Outlook add-in command demo: https://github.com/officedev/outlook-add-in-command-demo/blob/master/command-demo-manifest.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <OfficeApp xmlns="http://schemas.microsoft.com/office/appforoffice/1.1"
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xmlns:bt="http://schemas.microsoft.com/office/officeappbasictypes/1.0"
               xsi:type="MailApp">
    
      <!-- ... Other manifest properties ... -->
    
      <!-- Fallback settings for older Outlook clients -->
      <FormSettings>
        <!-- Define what to show in older clients -->
      </FormSettings>
    
      <Permissions>ReadWriteMailbox</Permissions>
    
      <Rule xsi:type="RuleCollection" Mode="Or">
        <Rule xsi:type="ItemIs" ItemType="Message" FormType="Read"/>
      </Rule>
    
      <!-- Add-in commands for modern Outlook clients -->
      <VersionOverrides xmlns="http://schemas.microsoft.com/office/mailappversionoverrides" xsi:type="VersionOverridesV1_0">
    
        <!-- v1.0 overrides -->
        <Requirements>
          <bt:Sets DefaultMinVersion="1.3">
            <bt:Set Name="Mailbox"/>
          </bt:Sets>
        </Requirements>
    
        <Hosts>
          <!-- ... -->
        </Hosts>
    
        <Resources>
          <!-- ... -->
        </Resources>
    
        <!-- Nested v1.1 overrides for newer features -->
        <VersionOverrides xmlns="http://schemas.microsoft.com/office/mailappversionoverrides/1.1" xsi:type="VersionOverridesV1_1">
          <Requirements>
            <bt:Sets DefaultMinVersion="1.5">
              <bt:Set Name="Mailbox"/>
            </bt:Sets>
          </Requirements>
    
          <Hosts>
            <!-- ... -->
          </Hosts>
    
          <Resources>
            <!-- ... -->
          </Resources>
        </VersionOverrides>
    
      </VersionOverrides>
    </OfficeApp>
    

    Please ensure your full manifest includes this complete structure. If the issue persists after confirming this, there may be another detail, such as a namespace mismatch, that would require reviewing the entire file to diagnose.

    I hope this helps you resolve the problem.


Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.