When the ActivityType.EndOfConversation is received, the error "No renderer for this activity" is displayed in the user's WebChat window. We have made no changes to the C# Bot code or the WebChat code. I should note this is not in the emulator but on our site. I saw some references to the same error but related to the emulator

Hi @baldrin,
This issue is related to https://github.com/Microsoft/BotFramework-Emulator/issues/1358 on the Emulator repo.
Currently Web Chat has a state of flux around this topic -- we need to confirm with the SDK team what Activity Types we support across all channels, and then determine how/if we render those supported Activity Types and block all other types.
As a current workaround, you are welcome to use activityMiddleware to render your own end of conversation activity. Please take a look at incoming activities and creating custom components sample.
====
For team discussion: @johnataylor I heard you were compiling a list of channel-wide supported activity types, do you have input?
I will start an offline discussion with mentioned parties.
Document created by @johnataylor is here: https://github.com/Microsoft/BotBuilder/issues/5294
I will expand on the link shortly.
(special thanks to @EricDahlvang for walking me through this)
Okay! This conversation has been really enlightening and I hope to share information in a way that's beneficial both to the team and our customers.
@johnataylor's chart above has to do with the Bot Framework REST API Protocol. This is a good basis for Web Chat as a client to decide which Activity Types we want to support, ignore, and/or render a "No renderer" message for. To summarize the chart, Direct Line API supports the following Activity Types:
MessageConversationUpdateEventEvent.TokenResponse (Activity of type Event with name of "tokens/response")EndOfConversationTypingInstallationUpdateOf the list above, the bolded items are the ones that Web Chat currently renders. All of the others by default currently show the red "No renderer for this activity" error box.
EndOfConversation is an activity that the Direct Line protocol forwards to the client, but takes no action on. I believe there is an argument for having Web Chat somehow 'rendering' EndOfConversation. Currently, it is only shows the "No renderer" message. I will circle back to this later.
InstallationUpdate, Event.TokenResponse, and ConversationUpdate are all activities that will be sent between bot and server, meaning that Web Chat as a client should not receive these activity types. For discussion I will call these "server to bot activities" that are expected in Direct Line.
Server to bot activities will not be received by Web Chat 'naturally'. They will only be received if the bot implementer uses these Activities in ways not intended by the Bot Framework SDK protocol. Because of this, I think a "No renderer for this activity" message for these activities in Web Chat is a valid response to the unusual case where Web Chat DOES receive InstallationUpdate, Event.TokenResponse, or ConversationUpdate.
ActivityMiddleware to implement their own component.If we follow the sentiments outlined above, these are the following action items that are created:
EndOfConversation?https://docs.microsoft.com/en-us/azure/bot-service/rest-api/bot-framework-rest-direct-line-3-0-end-conversation?view=azure-bot-service-4.0
I wanted to add some points. Although the doc above says Direct Line channels may handle endOfConversation however desired, I think it's still important for us to have a clear understanding of the functionality of this activity in Cortana before making our decisions for Web Chat.
I spoke with John in person and he also pointed out that the web, traditionally, ignores whatever it doesn't know. Example: I could make up a new HTML tag, but that doesn't mean the browser will do anything with it. So there's also an argument for removing the "No renderer for this activity" and allowing the user to detect the unknown activity and render it themselves. In this instance, it would mean removing the "No renderer for this activity" entirely.
Team made a decision today that Web Chat will REMOVE the "No renderer for this activity" error message. https://github.com/Microsoft/BotFramework-WebChat/issues/1827
Other action items
I am leaving this issue open for the last action item.
Most helpful comment
(special thanks to @EricDahlvang for walking me through this)
Okay! This conversation has been really enlightening and I hope to share information in a way that's beneficial both to the team and our customers.
@johnataylor's chart above has to do with the Bot Framework REST API Protocol. This is a good basis for Web Chat as a client to decide which Activity Types we want to support, ignore, and/or render a "No renderer" message for. To summarize the chart, Direct Line API supports the following Activity Types:
MessageConversationUpdateEventEvent.TokenResponse(Activity of type Event with name of"tokens/response")EndOfConversationTypingInstallationUpdateOf the list above, the bolded items are the ones that Web Chat currently renders. All of the others by default currently show the red "No renderer for this activity" error box.
EndOfConversationis an activity that the Direct Line protocol forwards to the client, but takes no action on. I believe there is an argument for having Web Chat somehow 'rendering'EndOfConversation. Currently, it is only shows the "No renderer" message. I will circle back to this later.InstallationUpdate,Event.TokenResponse, andConversationUpdateare all activities that will be sent between bot and server, meaning that Web Chat as a client should not receive these activity types. For discussion I will call these "server to bot activities" that are expected in Direct Line.Server to bot activities will not be received by Web Chat 'naturally'. They will only be received if the bot implementer uses these Activities in ways not intended by the Bot Framework SDK protocol. Because of this, I think a "No renderer for this activity" message for these activities in Web Chat is a valid response to the unusual case where Web Chat DOES receive
InstallationUpdate,Event.TokenResponse, orConversationUpdate.ActivityMiddlewareto implement their own component.If we follow the sentiments outlined above, these are the following action items that are created:
EndOfConversation?Team, please discuss! Thanks for reading.