Botbuilder-dotnet: BeginDialog failed with dialog id not found

Created on 13 May 2020  路  6Comments  路  Source: microsoft/botbuilder-dotnet

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

Version

What package version of the SDK are you using.
4.9.0-rc4

Describe the bug

BeginDialog failed with dialog id not found for special flow structure (call one dialog multi time). This issue is very easy to repro when build big project like calendar/todo/who skills.
image

When loading dialog set, after key value pair (A2, A2) has been added, a new pair (A22, A22) is processed. But A22 and A2 are somehow pointed to the same ref so the dialog id will update from A2 to A22. So the key value pair(A2, A2) turned out to be (A2, A22) for this special parent dialog. It is not valid anymore. When begin A22, the error A22 not found will show because the dialog set only have value for A2.

After investigation, this bug is caused by this commit (Adaptive: Detect and load graph cycles during type loading (#3857) )https://github.com/microsoft/botbuilder-dotnet/commit/9dd230f33d2cb341498c5f5e6ec1d2b16ef3ab53. Things work well after revert this change.

To Reproduce

Steps to reproduce the behavior:

  1. Put the source code under Microsoft.Bot.Builder.TestBot.Json
  2. input "c"
  3. See error : sub0222 not found.
    Bug.zip

Expected behavior

Dialog should be invoke successfully.

Screenshots

If applicable, add screenshots to help explain your problem.

Additional context

Add any other context about the problem here.

[bug]

P1 R9 bug investigate

All 6 comments

This is quite blocking for calendar/todo/who skills. Could you please help and investigate?
And thanks @xieofxie and @luhan2017 's great help for investigation~

@tomlm @vishwacsena looks like a "P0" to me...

Investigating!

Thanks @boydc2014 @xieofxie @DingmaomaoBJTU and @luhan2017 for the investigation and the example, that really accelerated the fix, you guys ROCK!

Can we work together to add tests to the adaptive project that cover all of composer templates? That would allow us to verify changes to the SDK early and not even allow things that break composer to be merged to the master branch of the SDK. Thoughts? + @cwhitten

Pending sign off from composer team but fix got merged to 4.9 branch. We'll generate a 4.9.1 release candidate build and publish to myget, in order to be verified tonight, before releasing the actual 4.9.1 build to nuget tomorrow.

Thank you for your quick response! @carlosscastro

Was this page helpful?
0 / 5 - 0 ratings