Skip to content

[Dev support]: [Teams AI SDK - Python] Task Module invocation fails with error: "<BotError> Agent returned unsuccessful status code: InternalServerError" #2510

@PjPraveenkumar

Description

@PjPraveenkumar

Please be sure to check the Discussions Q&A section before filing a new question.

Question

The partner was attempting to invoke an Adaptive Card-based Task Module using the Teams AI SDK for Python but encountered the following error. I have shared the exact task_module_fetch method implementation we used for reference.

Image

Traceback (most recent call last):
File "/Users/sgolebiewski/workspace/ca-ms-teams-integration/wip/SNOW-2144466-ac-payload/.venv/lib/python3.12/site-packages/msrest/serialization.py", line 494, in _serialize
is_xml_model_serialization = kwargs["is_xml"]
~~~~~~^^^^^^^^^^
KeyError: 'is_xml'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/Users/sgolebiewski/workspace/ca-ms-teams-integration/wip/SNOW-2144466-ac-payload/.venv/lib/python3.12/site-packages/botbuilder/core/integration/aiohttp_channel_service_exception_middleware.py", line 21, in aiohttp_error_middleware
response = await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/Users/sgolebiewski/workspace/ca-ms-teams-integration/ca-multi-channel-integrations-code-samples/teams-ai/04-task-modules/src/api.py", line 21, in on_messages
res = await app.process(req)
^^^^^^^^^^^^^^^^^^^^^^
File "/Users/sgolebiewski/workspace/ca-ms-teams-integration/wip/SNOW-2144466-ac-payload/.venv/lib/python3.12/site-packages/teams/app.py", line 742, in process
return await self._adapter.process(request, self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/sgolebiewski/workspace/ca-ms-teams-integration/wip/SNOW-2144466-ac-payload/.venv/lib/python3.12/site-packages/teams/teams_adapter.py", line 101, in process
res = await super().process(
^^^^^^^^^^^^^^^^^^^^^^
File "/Users/sgolebiewski/workspace/ca-ms-teams-integration/wip/SNOW-2144466-ac-payload/.venv/lib/python3.12/site-packages/botbuilder/integration/aiohttp/cloud_adapter.py", line 108, in process
data=serializer_helper(invoke_response.body),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/sgolebiewski/workspace/ca-ms-teams-integration/wip/SNOW-2144466-ac-payload/.venv/lib/python3.12/site-packages/botbuilder/core/serializer_helper.py", line 40, in serializer_helper
return serializer._serialize(object_to_serialize)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/sgolebiewski/workspace/ca-ms-teams-integration/wip/SNOW-2144466-ac-payload/.venv/lib/python3.12/site-packages/msrest/serialization.py", line 496, in _serialize
is_xml_model_serialization = kwargs.setdefault("is_xml", target_obj.is_xml_model())
^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'dict' object has no attribute 'is_xml_model

Code snippets

def build_simple_text_ac(text: str) -> dict:
    return {
        "type": "AdaptiveCard",
        "$schema": "https://adaptivecards.io/schemas/adaptive-card.json",
        "version": "1.5",
        "body": [
            {
                "type": "TextBlock",
                "text": text,
                "wrap": True
            }
        ]
    }

@app.task_modules.fetch("action_submit_task_module")
async def on_action_submit_task_module(context: TurnContext, _state: TurnState, data: dict) -> TaskModuleTaskInfo:
    print(f"[on_action_submit_task_module] handler triggered: {data}")

    # Respond with a task module response
    return TaskModuleTaskInfo(
        title="Action Submit Task Module",
        height="medium",
        width="medium",
        card=CardFactory.adaptive_card(build_simple_text_ac("Task Module triggered by Action.Submit"))
    )

here is AC example from my sample code: 
{
  "type": "AdaptiveCard",
  "$schema": "https://adaptivecards.io/schemas/adaptive-card.json",
  "version": "1.5",
  "msteams": {
    "width": "Full"
  },
  "body": [
    {
      "type": "ActionSet",
      "actions": [
        {
          "type": "Action.Submit",
          "title": "Action.Submit",
          "verb": "action_submit_task_module",
          "data": {
            "msteams": {
              "type": "task/fetch",
              "verb": "action_submit_task_module"
            },
            "verb": "action_submit_task_module",
            "data_1": 123,
            "data_2": "abc"
          }
        }
      ]
    }
  ]
}

Note: please use this template to file your questions regarding implementation. Once your question is answered, our team will move this question to Q&A in Discussions for findability.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions