Forum Discussion

Denys-Fokin's avatar
Denys-Fokin
Copper Contributor
Jun 30, 2025
Solved

Consent popup

Hi everyone, I’m reaching out for clarification regarding a popup that intermittently appears when users interact with our notification only bot, specifically when attempting to open a task module.

After clicking "Agree" it shows "Enjoy using" and then appeared again. When clicking on Privacy/Terms of use nothing happens, while Permissions lead to opening another popup with endless loading, after closing it consent popup stops appearing for this app.

Context:

  • Sideloaded;
  • Only a bot is declared in the manifest;
  • App registration: Registered in Azure as multi-tenant with personal accounts enabled, SSO is not used;
  • Interaction: Task module is triggered via Adaptive Card with Action.Submit, "msteams": { "type": "task/fetch" };

We’ve seen it only a few times in one tenant. It does not appear in most other sessions. Can someone tell if this is a bug or if there are some specific conditions that trigger this popup?

Thanks in advance!

  • Hello Denys-Fokin,
    This consent popup appears to be related to Azure AD app registration consent flow, not a bug. The consent popup is expected behavior for multi-tenant apps without proper configuration. 
    Looking at your manifest, Missing webApplicationInfo in manifest, so Teams can't identify your Azure AD app properly.

    Add  webApplicationInfo in your manifest and declare minimal permissions:

     { // ...existing code...
    
      "webApplicationInfo": {
    
        "id": "526ebd72-4b57-4c34-b84f-7fb03b6ddeb6",
    
        "resource": "api://tatamf.stg.skillscaravan.com/526ebd72-4b57-4c34-b84f-7fb03b6ddeb6"
    
      },
    
      "permissions": [
    
        "identity",
    
        "messageTeamMembers"
    
      ],
    
      // ...existing code...
    
    }

     

6 Replies

  • Denys-Fokin's avatar
    Denys-Fokin
    Copper Contributor

    All we did was post adaptive card that looks like this:

    {
      "type": "AdaptiveCard",
      "body": [
        {
          "type": "Image",
          "id": "headerImage",
          "url": "${headerImageUrl}",
          "horizontalAlignment": "Left",
          "size": "Stretch"
        },
        {
          "type": "ColumnSet",
          "columns": [
            {
              "type": "Column",
              "width": "stretch",
              "items": [
                {
                  "type": "TextBlock",
                  "size": "Large",
                  "weight": "Bolder",
                  "text": "${title}",
                  "id": "cardTitle",
                  "wrap": true
                }
              ],
              "horizontalAlignment": "Left"
            },
            {
              "type": "Column",
              "width": "83px",
              "items": [
                {
                  "type": "Image",
                  "url": "",
                  "size": "Stretch"
                }
              ],
              "id": "completedMark",
              "horizontalAlignment": "Right",
              "$when": "${isCompleted}"
            }
          ],
          "horizontalAlignment": "Left"
        },
        {
          "type": "Image",
          "id": "mainImage",
          "altText": "Loading",
          "url": "${imageUrl}",
          "size": "Stretch"
        },
        {
          "type": "Container",
          "items": [
            {
              "type": "TextBlock",
              "text": "${bodyTitle}",
              "wrap": true,
              "id": "bodyTitle",
              "spacing": "Small",
              "fontType": "Default",
              "weight": "Bolder"
            },
            {
              "type": "TextBlock",
              "text": "${bodyText}",
              "wrap": true,
              "id": "bodyText"
            }
          ],
          "id": "textContainer"
        }
      ],
      "actions": [
        {
          "type": "Action.Submit",
          "title": "${buttonTitle}",
          "data": {
            "msteams": {
              "type": "task/fetch"
            },
            "data": {
              "type": "nudge",
              "link": "${link}",
              "nudgeId": "${id}"
            }
          },
          "$when": "${isButtonEnabled}"
        }
      ],
      "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
      "version": "1.5"
    }

    Then pressing button from "actions" section. It is handled by Microsoft.Bot.Builder.Teams.TeamsActivityHandler.OnTeamsTaskModuleFetchAsync:

    protected override Task<TaskModuleResponse> OnTeamsTaskModuleFetchAsync(ITurnContext<IInvokeActivity> _, TaskModuleRequest taskModuleRequest, CancellationToken ct) 
    { 
    using var document = JsonDocument.Parse(taskModuleRequest.Data.ToString() ?? string.Empty); 
    var dataElement = document.RootElement.GetProperty("data");
    // Extracting action params and populating taskInfo 
    ... 
    var taskInfo = new TaskModuleTaskInfo 
    { 
    Url = uri, 
    FallbackUrl = uri, 
    Title = popUp.Title, 
    Width = popUp.Width.ToString().ToLower(), 
    Height = popUp.Height.ToString().ToLower() 
    }; 
    
    return Task.FromResult(new TaskModuleResponse { Task = new TaskModuleContinueResponse { Value = taskInfo } }); 
    }

    However, popup appears before it enters OnTeamsTaskModuleFetchAsync.

    We encountered and were able to document this issue 2025-03-20 in PC and browser Teams clients, unfortunately I cannot figure out what was the client version. I failed reproduce it as of 2025-06-30 in our bot, but spotted this behavior in another bot, which is not managed by us, so we decided to investigate.

    manifest:

    {
        "$schema": "https://developer.microsoft.com/en-us/json-schemas/teams/v1.16/MicrosoftTeams.schema.json",
        "manifestVersion": "1.16",
        "version": "1.2.0",
        "id": "6b496740-9b53-404e-a841-9197be646d19",
        "packageName": "test",
        "localizationInfo": {
            "defaultLanguageTag": "en-us",
            "additionalLanguages": [
              {
                "languageTag": "en-gb",
                "file": "en-gb.json"
              }
            ]
        },
        "developer": {
            "name": "test",
            "websiteUrl": "test",
            "privacyUrl": "test",
            "termsOfUseUrl": "test"
        },
        "icons": {
            "color": "color.png",
            "outline": "outline.png"
        },
        "name": {
            "short": "Local",
            "full": "Local"
        },
        "description": {
            "short": "test",
            "full": "test"
        },
        "accentColor": "#12171D",
        "bots": [
            {
                "botId": "6b496740-9b53-404e-a841-9197be646d19",
                "scopes": [
                    "personal"
                ],
                "supportsFiles": false,
                "isNotificationOnly": true
            }
        ],
        "composeExtensions": [],
        "configurableTabs": [],
        "staticTabs": [],
        "permissions": [
            "identity",
            "messageTeamMembers"
        ],
        "validDomains": [
            "*.use.devtunnels.ms",
            "*.euw.devtunnels.ms",
    	    "*.azurewebsites.net",
            "*.ngrok-free.app"
        ]
    }

     

    • Sayali-MSFT's avatar
      Sayali-MSFT
      Icon for Microsoft rankMicrosoft

      Hello Denys-Fokin,
      This consent popup appears to be related to Azure AD app registration consent flow, not a bug. The consent popup is expected behavior for multi-tenant apps without proper configuration. 
      Looking at your manifest, Missing webApplicationInfo in manifest, so Teams can't identify your Azure AD app properly.

      Add  webApplicationInfo in your manifest and declare minimal permissions:

       { // ...existing code...
      
        "webApplicationInfo": {
      
          "id": "526ebd72-4b57-4c34-b84f-7fb03b6ddeb6",
      
          "resource": "api://tatamf.stg.skillscaravan.com/526ebd72-4b57-4c34-b84f-7fb03b6ddeb6"
      
        },
      
        "permissions": [
      
          "identity",
      
          "messageTeamMembers"
      
        ],
      
        // ...existing code...
      
      }

       

    • Sayali-MSFT's avatar
      Sayali-MSFT
      Icon for Microsoft rankMicrosoft

      Hello Denys-Fokin, Thanks for sharing the information. We will check this and let you know the update.

  • Hello @Denys-Fokin,Thank you for reaching out!  Could you please provide more details about your issue? Specifically, it would be helpful to know: 

    • Reproduction Steps: What steps did you take leading up to the problem? 
    • Documentation Links: Are there any specific guides or documentation you followed? 
    • Teams Client Version: What version of the Teams client are you using? 
    • Code Snippets: If applicable, please share any relevant code snippets. 
    • Manifest Package: If you have one, could you include the manifest package for your app? 

    Providing this information will help us better understand your situation and assist you more effectively. 

Resources