microsoft / botbuilder-dotnet

Welcome to the Bot Framework SDK for .NET repository, which is the home for the libraries and packages that enable developers to build sophisticated bot applications using .NET.
https://github.com/Microsoft/botframework
MIT License
878 stars 484 forks source link

ActivityHandler.OnMessageActivityAsync is executed before receiving a file attachment when using DLASE #6853

Open sw-joelmut opened 1 month ago

sw-joelmut commented 1 month ago

Version

main (4.22.9)

Describe the bug

Using DLASE when sending messages from WebChat (preferably file attachments), the BF-Connector TransportHandler.ListenAsync method functionality that reads from NamedPipes is executed after the ActivityHandler.OnMessageActivityAsync event from the bot. So when sending a file attachment, the MemoryStream information comes empty. This issue happens randomly, since it could be an asynchronous issue.

To Reproduce

Steps to reproduce the behavior:

  1. Configure NamedPipe in an Echo bot, and use a DLASE WebChat client.
  2. Add a breakpoint to the TransportHandler.ListenAsync (line 50).
  3. Add a breakpoint to the bot's ActivityHandler.OnMessageActivityAsync.
  4. Send a file attachment over WebChat.
  5. The 3rd step (breakpoint) should be hit first, instead of the 2nd step.

Expected behavior

The file information (MemoryStream) inside the activity's attachment should come with buffer data.

Screenshots

image