Forum Discussion

AdelYerro's avatar
AdelYerro
Copper Contributor
Aug 22, 2025

Since Aug 22nd we can't save any Side Panel tabs

Hello!

Yesterday (Aug 22nd 2025) we got an update in our Teams Links that we normally share to start meetings. They were modified from this format:

https://teams.microsoft.com/l/meetup-join/19%3ameeting_XXXXXXXXXXXXXXX%40thread.v2/0?context=%7b%22Tid%22%3a%22xxxxxxxxxxxx%22%2c%22Oid%22%3a%22xxxxxxxxxxxxxx%22%7d

to 

https://teams.microsoft.com/meet/00000000000?p=XXXXXXXXX


Sensitive values and ids have been redacted above and inside all the snippets in this post.

This looks like a planned rollout, as specified here: https://mc.merill.net/message/MC772556 

After this change, none of our apps are able to save a side panel into any of the meetings with the new link format.

We had a couple of older, still available meetings whose link had the previous format, and we are able to save the side panel there, but no matter what we tried, nothing allowed us to solve this situation on our end. My final resort is this post in hopes of a solution to what we see.

Each save operation yields a 500 on this call

https://teams.microsoft.com/api/chatsvc/amer/v1/threads/19%3Ameeting_XXXXXXXXXXXXXXXXXX%40thread.v2/properties?name=tab%3A%3Axxxxxxxxxxxxxxxx

{
    "errorCode": 500,
    "message": "{\"subCode\":\"TabOperationFailed\",\"details\":\"Initiator 8:orgid:xxxxxxxxxxxxxx failed perform tab operation\",\"errorCode\":1500,\"errorSubCode\":null}",
    "standardizedError": {
        "errorCode": 1500,
        "errorSubCode": 1,
        "errorDescription": "TabOperationFailed-Initiator 8:orgid:xxxxxxxxxxxxxx failed perform tab operation"
    }
}


I ended up trying to manually install it with graph api calls, which didn't work either and gave me a 502

curl -s -X POST "https://graph.microsoft.com/v1.0/chats/$CHAT_ID/tabs" \
  -H "Authorization: Bearer $ACCESS_TOKEN" -H "Content-Type: application/json" \
  -d '{
    "displayName": "DisplayName",
    "email address removed for privacy reasons": "https://graph.microsoft.com/v1.0/appCatalogs/teamsApps/'"$TEAMS_APP_ID"'",
    "configuration": {
      "entityId": "entity-random",
      "contentUrl": "https://<domain>/?theme={theme}&locale={locale}",
      "websiteUrl": "https://<domain>/"
    }
  }' | jq .

{
  "error": {
    "code": "BadGateway",
    "message": "Failed to execute backend request.",
    "innerError": {
      "date": "2025-08-22T03:36:08",
      "request-id": "b4bbade7-1ea2-46df-a1d9-92cdda9e360b",
      "client-request-id": "b4bbade7-1ea2-46df-a1d9-92cdda9e360b"
    }
  }
}

 

Then, thinking there was something wrong with my app, I used a MS app, same result

curl -s -X POST "https://graph.microsoft.com/v1.0/chats/$CHAT_ID/tabs" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "displayName": "Website - test",
    "email address removed for privacy reasons": "https://graph.microsoft.com/v1.0/appCatalogs/teamsApps/com.microsoft.teamspace.tab.web",
    "configuration": {
      "entityId": null,
      "contentUrl": "https://www.microsoft.com",
      "websiteUrl": "https://www.microsoft.com"
    }
  }' | jq .
{
  "error": {
    "code": "BadGateway",
    "message": "Failed to execute backend request.",
    "innerError": {
      "date": "2025-08-22T04:02:36",
      "request-id": "ece5590e-f23f-4780-a4a6-20c1b2f0d0f3",
      "client-request-id": "ece5590e-f23f-4780-a4a6-20c1b2f0d0f3"
    }
  }
}

I then tested it against chats that do not belong to a meeting. Both apps succeeded

curl -s -X POST "https://graph.microsoft.com/v1.0/chats/$REGULAR_CHAT_ID/tabs" \
  -H "Authorization: Bearer $ACCESS_TOKEN" -H "Content-Type: application/json" \
  -d '{
    "displayName": "Website - test",
    "email address removed for privacy reasons": "https://graph.microsoft.com/v1.0/appCatalogs/teamsApps/com.microsoft.teamspace.tab.web",
    "configuration": { "entityId": null, "contentUrl": "https://www.microsoft.com", "websiteUrl": "https://www.microsoft.com" }
  }' | jq .
{
  "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#chats('19%3xxxxxx_xxxxxxxxxxxx%40unq.gbl.spaces')/tabs/$entity",
  "id": "a0cca657-12d0-4df0-84d8-cc1f8fa7d3e6",
  "displayName": "Website - test",
  "webUrl": "https://teams.microsoft.com/l/chat/19%xxxxxxxxx_XXXXXXXXX%40unq.gbl.spaces/tab%3a%3xxxxxxxxxxxxxxxxxxxxxx?webUrl=https%3a%2f%2fwww.microsoft.com&label=Website+-+test&tenantId=xxxxxxxxxxxxxxxxxxx,
  "configuration": {
    "entityId": null,
    "contentUrl": "https://www.microsoft.com",
    "removeUrl": null,
    "websiteUrl": "https://www.microsoft.com"
  }
}

curl -s -X POST "https://graph.microsoft.com/v1.0/chats/$REGULAR_CHAT_ID/tabs" \
  -H "Authorization: Bearer $ACCESS_TOKEN" -H "Content-Type: application/json" \
  -d '{
    "displayName": "redacted",
    "email address removed for privacy reasons": "https://graph.microsoft.com/v1.0/appCatalogs/teamsApps/'"$TEAMS_APP_ID"'",
    "configuration": {
      "entityId": "redacted",
      "contentUrl": "https://<domain>/?theme={theme}&locale={locale}",
      "websiteUrl": "https://<domain>/"
    }
  }' | jq .
{
  "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#chats('19%3xxxxxxxxxxxxx_xxxxxxxxxxxxx%40unq.gbl.spaces')/tabs/$entity",
  "id": "xxxxxxxxxxxxxxxxxxxxxx",
  "displayName": "redacted",
  "webUrl": "https://teams.microsoft.com/l/entity/<redacted>/_djb2_msteams_prefix_000000000?webUrl=https%3a%2f%2f<domain>%2f&label=redacted+label&context=%7b%0d%0a++%22context%22%3a+%22chat%22%2c%0d%0a++%22chatId%22%3a+%2219%3axxxxxxx_xxxxxxxxx%40unq.gbl.spaces%22%2c%0d%0a++%22subEntityId%22%3a+null%0d%0a%7d&tenantId=xxxxxxxxxxxxxxxx",
  "configuration": {
    "entityId": "redacted",
    "contentUrl": "https://<domain>/?theme={theme}&locale={locale}",
    "removeUrl": null,
    "websiteUrl": "https://<domain>/"
  }
}

At this point we don't know what else to do, seems like a meeting specific issue that we are unable to solve. It's affecting our tenants in all environments, since our primary business flow relies on this panel. All the snippets contain real dates and request-ids, here's hoping it helps somehow.

 

Help, and thanks in advance.

 

~A. del Yerro

8 Replies

  • LucasS's avatar
    LucasS
    Copper Contributor

    Hello,

     We are experiencing the same issue with the Side Panel tab, we are unable to save the app configuration.

    It stopped working for us around the same time.

    Any updates please?

  • AdelYerro's avatar
    AdelYerro
    Copper Contributor

    Sayali-MSFT​ The ThreadId is known, we don't extract it from the meeting link.
    The request fails with a BadGateway Error when doing the request (both manually or though the SDK), POST /chats/{threadId}/tabs
    This is an example output from graph:

    {
      "error": {
        "code": "BadGateway",
        "message": "Failed to execute backend request.",
        "innerError": {
          "date": "2025-08-22T03:36:08",
          "request-id": "b4bbade7-1ea2-46df-a1d9-92cdda9e360b",
          "client-request-id": "b4bbade7-1ea2-46df-a1d9-92cdda9e360b"
        }
      }
    }

     

  • mmati's avatar
    mmati
    Copper Contributor

    Sayali-MSFT​ I don't develop an app or have access to the graph api or any of the params mentioned. It just doesn't add any app to the sidepanel during a meet.

    It just freezes i.e. youtube:

    In the browser network there are multiple `500` errors on `teams.microsoft.com/api/*` requests showing up right after "save" click.

    • phu-ha's avatar
      phu-ha
      Copper Contributor

      I encountered the same issue when trying to add a new app to the meeting.
      Hi Sayali-MSFT​  do you have any updates on this issue?

  • Hello AdelYerro​ mmati​ ,We got the below information from Enginering team that,

    This is happening because the new /meet/<guid> links no longer expose the 19:meeting…@thread.v2 id, but the tab install path they are using relies on the meeting chat thread id. 

    To get this working, the threadId could be resolved through Graph (/onlineMeetings → chatInfo.threadId) and then passed into POST /chats/{threadId}/tabs.

     how you currently retrieving the threadId? 

    • AdelYerro's avatar
      AdelYerro
      Copper Contributor

      The threadId is known to the side panel, we don't rely in the meeting link to extract it at all.
      I also added in my post a direct call I did with graph using a known threadId with both apps and both failed server side.

      To be more precise when the side panel fails to install Teams is doing the following call:

      https://teams.microsoft.com/api/chatsvc/amer/v1/threads/19%3Ameeting_XXXXXXXXXXXXXXXXXX%40thread.v2/properties?name=tab%3A%3Axxxxxxxxxxxxxxxx

      And fails, server side.

      Doing the direct approach then doing a POST to /chats/{threadId}/tabs, also fails. Above you can see a server side bad gateway response from graph when doing exactly what engineering answered:

      curl -s -X POST "https://graph.microsoft.com/v1.0/chats/$CHAT_ID/tabs" \
        -H "Authorization: Bearer $ACCESS_TOKEN" \
        -H "Content-Type: application/json" \
        -d '{
          "displayName": "Website - test",
          "email address removed for privacy reasons": "https://graph.microsoft.com/v1.0/appCatalogs/teamsApps/com.microsoft.teamspace.tab.web",
          "configuration": {
            "entityId": null,
            "contentUrl": "https://www.microsoft.com",
            "websiteUrl": "https://www.microsoft.com"
          }
        }' | jq .
      {
        "error": {
          "code": "BadGateway",
          "message": "Failed to execute backend request.",
          "innerError": {
            "date": "2025-08-22T04:02:36",
            "request-id": "ece5590e-f23f-4780-a4a6-20c1b2f0d0f3",
            "client-request-id": "ece5590e-f23f-4780-a4a6-20c1b2f0d0f3"
          }
        }
      }

      Please review the request with this information:

      {
        "error": {
          "code": "BadGateway",
          "message": "Failed to execute backend request.",
          "innerError": {
            "date": "2025-08-22T03:36:08",
            "request-id": "b4bbade7-1ea2-46df-a1d9-92cdda9e360b",
            "client-request-id": "b4bbade7-1ea2-46df-a1d9-92cdda9e360b"
          }
        }
      }

      as it is a direct (manual) graph api call with a correct meeting ThreadId from a personal meeting room (calendar->meet now->🎥 Start meeting) that returned "BadGateway". Same request succeeds if the meeting chat belongs to a scheduled meeting (calendar -> new event -> tick Teams meeting -> join)
      I got the chatInfo thread Id the same way from both meetings.

  • mmati's avatar
    mmati
    Copper Contributor

    I've run into exactly the same issue, with no solution unfortunately - Sayali-MSFT​ is there na ETA when this will be fixed? I can't add any app into the sidepanel during a meeting...

  • Hello A. del Yerro,
    Thank you for bringing this issue to our attention. We are checking with the internal team and get back to you once we have any update.

Resources