Description
When a user clicks an Action.Submit button on an Adaptive Card sent by the bot in Teams, the invoke activity arrives at the msteams provider but is silently dropped. The provider logs received message followed by skipping empty message after stripping mentions — the invoke payload in the value field is ignored because the provider only looks at the text field.
Steps to Reproduce
- Send an Adaptive Card with
Action.Submit buttons via the Bot Framework API
- User clicks a button in Teams
- Observe logs:
received message → skipping empty message after stripping mentions
- Agent never receives the button click data
Expected Behavior
The invoke activity should be forwarded to the agent with the button's data payload, allowing the agent to process the user's selection.
Actual Behavior
The provider treats the invoke as a regular message, strips mentions (finding none), ends up with empty text, and skips the message entirely. The value field containing the button data is never examined.
Root Cause
In src/monitor-handler.ts (or equivalent), the handler processes adaptiveCard/action invoke activities the same as regular messages. It strips @mention tags from the text field, finds nothing, and drops the message. The value field (which contains the Action.Submit payload) is not checked.
The provider already handles fileConsent/invoke and message/submitAction invoke types — adaptiveCard/action needs similar treatment.
Workaround
Use Action.OpenUrl buttons instead (these work because they open a URL client-side without sending an invoke). For interactive decisions, use a "Display + Reply" pattern: show options in a card, ask the user to reply with their choice as text.
Environment
- OpenClaw version: 2026.3.22
- Docker image:
ghcr.io/openclaw/openclaw:latest
- Channel: msteams (Bot Framework, single tenant)
- Adaptive Card schema version: 1.5
Description
When a user clicks an
Action.Submitbutton on an Adaptive Card sent by the bot in Teams, the invoke activity arrives at the msteams provider but is silently dropped. The provider logsreceived messagefollowed byskipping empty message after stripping mentions— the invoke payload in thevaluefield is ignored because the provider only looks at thetextfield.Steps to Reproduce
Action.Submitbuttons via the Bot Framework APIreceived message→skipping empty message after stripping mentionsExpected Behavior
The invoke activity should be forwarded to the agent with the button's
datapayload, allowing the agent to process the user's selection.Actual Behavior
The provider treats the invoke as a regular message, strips mentions (finding none), ends up with empty text, and skips the message entirely. The
valuefield containing the button data is never examined.Root Cause
In
src/monitor-handler.ts(or equivalent), the handler processesadaptiveCard/actioninvoke activities the same as regular messages. It strips@mentiontags from thetextfield, finds nothing, and drops the message. Thevaluefield (which contains the Action.Submit payload) is not checked.The provider already handles
fileConsent/invokeandmessage/submitActioninvoke types —adaptiveCard/actionneeds similar treatment.Workaround
Use
Action.OpenUrlbuttons instead (these work because they open a URL client-side without sending an invoke). For interactive decisions, use a "Display + Reply" pattern: show options in a card, ask the user to reply with their choice as text.Environment
ghcr.io/openclaw/openclaw:latest