microsoft-graph-comms-samples icon indicating copy to clipboard operation
microsoft-graph-comms-samples copied to clipboard

Bot never joins Team Meeting: Server Internal Error. DiagCode: 500#1203003.@

Open aliasmac opened this issue 1 year ago • 6 comments

Describe the issue

When inviting the bot to a Teams call we receive a HTTP 500 error and the bot never joins the call.

Code Snippet

var statefulCall = await this.Client.Calls().AddAsync(joinParams).ConfigureAwait(false);

This runs successfully, but we never receive the established callback.

Expected behavior

We expect to receive a series of callbacks from Microsoft. We expect to receive the established callback that eventually resolves to the Bot joining a Teams call.

Graph SDK (please complete the following information):

Microsoft.Graph.Communications.Calls" Version="1.2.0.850"
Microsoft.Graph.Communications.Client" Version="1.2.0.850"
Microsoft.Graph.Communications.Common" Version="1.2.0.850"
Microsoft.Graph.Communications.Core" Version="1.2.0.850"
Microsoft.Graph.Communications.Calls.Media" Version="1.2.0.850"
Microsoft.Skype.Bots.Media" Version="1.27.0.2-alpha"

Call ID

Time: 2024-10-14 16:13:09.754 | time="2024-10-14T15:13:09.7547304Z callChainId: ceb776d1-051b-4257-b170-4f53376418e7

Logs

Initial POST api/calling request where state is establishing

{
  "@odata.type": "#microsoft.graph.commsNotifications",
  "value": [
    {
      "@odata.type": "#microsoft.graph.commsNotification",
      "changeType": "updated",
      "resource": "/app/calls/00003680-2f08-421e-8420-b8684632e4c5",
      "resourceUrl": "/communications/calls/00003680-2f08-421e-8420-b8684632e4c5",
      "resourceData": {
        "@odata.type": "#microsoft.graph.call",
        "state": "establishing",
        "chatInfo": {
          "@odata.type": "#microsoft.graph.chatInfo",
          "threadId": "19:meeting_MzdhZDk5YTctMTNlMi00ZGYzLWE3NjAtMmQ4MzlhY2RmZmYy@thread.v2",
          "messageId": "0"
        },
        "meetingInfo": {
          "@odata.type": "#microsoft.graph.organizerMeetingInfo",
          "organizer": {
            "@odata.type": "#microsoft.graph.identitySet",
            "user": {
              "@odata.type": "#microsoft.graph.identity",
              "id": "f353f265-2c71-41c1-9537-9df59b7f2965",
              "tenantId": "<ommitted>"
            }
          },
          "callChainId": "d8bcb98a-6906-4124-baf2-f952d158a8d5"
        }
      }
    }
  ]
}

After a further 4 establishing requests we receive this as the 6th request that updates state to terminated:

{
  "@odata.type": "#microsoft.graph.commsNotifications",
  "value": [
    {
      "@odata.type": "#microsoft.graph.commsNotification",
      "changeType": "deleted",
      "resource": "/app/calls/0a003680-3adb-42a1-ac37-8cd856289569",
      "resourceUrl": "/communications/calls/0a003680-3adb-42a1-ac37-8cd856289569",
      "resourceData": {
        "@odata.type": "#microsoft.graph.call",
        "state": "terminated",
        "resultInfo": {
          "@odata.type": "#microsoft.graph.resultInfo",
          "code": 500,
          "subcode": 1203003,
          "message": "Server Internal Error. DiagCode: 500#1203003.@"
        },
        "chatInfo": {
          "@odata.type": "#microsoft.graph.chatInfo",
          "threadId": "19:meeting_MzdhZDk5YTctMTNlMi00ZGYzLWE3NjAtMmQ4MzlhY2RmZmYy@thread.v2",
          "messageId": "0"
        },
        "meetingInfo": {
          "@odata.type": "#microsoft.graph.organizerMeetingInfo",
          "organizer": {
            "@odata.type": "#microsoft.graph.identitySet",
            "user": {
              "@odata.type": "#microsoft.graph.identity",
              "id": "f353f265-2c71-41c1-9537-9df59b7f2965",
              "tenantId": "<ommitted>"
            }
          },
          "callChainId": "ceb776d1-051b-4257-b170-4f53376418e7"
        }
      }
    }
  ]
}

Additional context

  • We have already setup the bot to run as a single instance, with this we're trying to run multiple instances. The implementation of the k8s infra takes inspiration from this setup.
  • We're running this on AWS, we'll soon be moving to Azure as was recommended to my colleague a little while ago here
  • The Bot has never joined the call with this setup

aliasmac avatar Oct 14 '24 16:10 aliasmac

I encounter the same issue in a different environment: https://github.com/microsoftgraph/microsoft-graph-comms-samples/issues/772

csk-bsi avatar Oct 15 '24 06:10 csk-bsi

Can you confirm that the media platform part of your bot was able to initialize successfully? I think it would help if you could provide the GraphLogger output of the SDK initialization and logs during the join attempt, ideally in a spoiler

Like this
Long
list
of
GraphLogger
output

InDieTasten avatar Oct 15 '24 18:10 InDieTasten

Hey @InDieTasten thanks for the tip, adding the logging revealed the root cause which we were able to fix, wasn't aware we could add the logger to the media platform, thanks!

aliasmac avatar Oct 17 '24 16:10 aliasmac

Hey, could you describe your root cause? I may face the same issue: https://github.com/microsoftgraph/microsoft-graph-comms-samples/issues/772

Thanks!

csk-bsi avatar Oct 17 '24 16:10 csk-bsi

@csk-bsi it was the most innocuous error, we were passing env variables via the k8s manifest for the different port mappings and since we're using .NET it expects a specific formatting which we got wrong for the public port, so instead of using the port we were exposing on our LB it was using a hardcoded port on our appsetting.json!

aliasmac avatar Oct 17 '24 16:10 aliasmac

Hey @aliasmac, if you're dealing with issues where a bot never joins a Teams meeting due to server errors, you might want to check out the Recall.ai API.

It’s a simple 3rd party API that lets you use meeting bots to join meetings and capture raw audio/video/metadata without needing to build, scale, and maintain these bots yourself.

Here are the API docs: https://docs.recall.ai

tedlatte avatar Oct 17 '24 22:10 tedlatte