Thank you for reaching out to Microsoft Q&A
From my experience, it seems that there has been a noticeable change in the behavior of Adaptive Cards with Action.Submit buttons configured with msteams.type: "messageBack".Some users have reported that, after interacting with such buttons in Microsoft Teams (on Windows, macOS, and Web clients), the expected payload (contained in the activity.value object) no longer reaches the bot service. Instead, it is returned as an empty object ({}). While I understand this may seem unusual, it’s important to note that there hasn't been any official confirmation or detailed information from Microsoft regarding this change or its intended behavior.
Moreover, as well as feedback from other users in the community, this seems to be a shift in how Teams handles Action.Submit actions, but without clear documentation or confirmation from Microsoft at this point, it's challenging to definitively characterize this as a bug or known issue.
Additionally, from my observation, the issue primarily affects Teams Desktop and Web clients (both on Windows and macOS), while Android appears to be functioning as expected. This difference in behavior suggests that the change might be client-specific, but again, without official clarification, it remains speculative.
So, for more context, you can refer to a similar discussion on GitHub, where users have highlighted the same concerns: https://github.com/MicrosoftDocs/msteams-docs/issues/13461
However, while waiting for an official fix, you can try some of the workarounds below:
- Add a Text Fallback in
msteamsInclude atextproperty so the bot can recover the intent fromactivity.textifactivity.valueis empty:
"data": {
"msteams": {
"type": "messageBack",
"displayText": "Submit",
"text": "submit:id=12345",
"value": { "id": "12345" }
}
}
On the bot side, check activity.value first; if empty, parse activity.text.
- Use Task Modules or Invoke Actions For critical operations, switch to task modules or
Action.Execute(where supported). These send aninvokeactivity with the full payload and avoid themessageBackpath. Reference: https://free.blessedness.top/en-us/microsoftteams/platform/task-modules-and-cards/what-are-task-modules - Dual-Encode Identifiers Put the identifier in multiple places (e.g.,
msteams.value,msteams.text, and a hidden input field) to ensure you can retrieve it even if one path fails.
Hope my answer will help you, for any further concern, kindly let me know in the comment section
If the answer is helpful, please click "Accept Answer" and kindly upvote it. If you have extra questions about this answer, please click "Comment".
Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.