microsoft / botbuilder-js

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

Channel moderation settings are evaluated incorrectly when posting as a bot. #4665

Open LeonYasoon opened 3 months ago

LeonYasoon commented 3 months ago

Github issues should be used for bugs and feature requests. Use Stack Overflow for general "how-to" questions.

Versions

What package version of the SDK are you using: 4.20.0 What nodejs version are you using: 18 What browser version are you using: - What os are you using: MacOS and Linux (prod)

Describe the bug

The channel moderation settings allow users in the Teams UI to disallow bots from posting into the channel:

Screenshot 2024-05-13 at 13 53 46

When unticking that box and the turning the whole channel moderation feature off

Screenshot 2024-05-13 at 13 53 54

bots still cannot post into that channel. The error message thrown by the botbuilder framework is "User blocked conversation with the bot."

Turning the moderation back on, ticking the box, then turning it off makes it work again.

-> It seems like the "Allow bots to post into this channel" box is evaluated regardless of the channel moderation feature being on or off for that channel.

To Reproduce

Steps to reproduce the behavior:

  1. Go to Teams -> Channel settings -> Turn on channel moderation
  2. Make sure the "Allow bots to post into this channel" box is NOT checked.
  3. Turn off channel moderation
  4. Try to post into that channel with the botbuilder sdk client.conversations.sendToConversation()
  5. Receive the "User blocked conversation with the bot." error.
  6. Turn on channel moderation and tick that box, turn channel moderation back off
  7. Post again -> no error.

Expected behavior

The expected behaviour would be that channel moderation settings are only evaluated when channel moderation is on.

tracyboehrer commented 3 months ago

@LeonYasoon The moderation features are part of Teams. BF SDK itself doesn't have any knowledge about these things. At best, this would be a feature, but likely not something BF SDK could add on its own.

LeonYasoon commented 3 months ago

@tracyboehrer So the "User blocked conversation" error is thrown by the API and the SDK just passes it along? Do you know where the best place to raise this bug would be then?

tracyboehrer commented 3 months ago

@LeonYasoon Correct. Anything via Connector is always to the backend. Azure Bot Service or Teams. It's simply a request and gets a response. SDK doesn't even really know it's dealing with Teams, unless it's via a TeamsConnector, but it's the same model.

Do you happen to know the response code from that call? Though anything that isn't 200-202 is going to translate into an ErrorResponse.

I would say start with the folks in the Teams AI SDK repo. But I can't say they will deal with that directly or not.

LeonYasoon commented 3 months ago

@tracyboehrer It's an http 403 with "ConversationBlockedByUser". I will raise this issue in another repo aswell.

tracyboehrer commented 3 months ago

@LeonYasoon 403 is pretty generic. Most the bot could do is handle it more gracefully. Honestly, I didn't even realize Teams had this functionality.

LeonYasoon commented 3 months ago

@tracyboehrer Well, at least it's a catchable error that one can handle, but the functionality needs to work properly according to what the users configure visually in the Teams UI.