Emulator: when deep link to LUIS hangs due to missing info, no message appears
Version
Mac: Emulator_OSX_v4.0.0-preview.40025_40380
Describe the bug
Deep links to LUIS can fail if no version number is given. When this happens, there is no feedback in the Emulator that the deep link is failing or why. Although there is validation in Emulator that a version is supplied, if you create/edit the .bot file elsewhere, it's possible that the LUIS version might be missing.
Related: As of 9/26, the Basic Bot template in Ibiza did not contain a version for LUIS. Filed a bug on Ibiza: https://fuselabs.visualstudio.com/BotFramework/_queries/edit/25005/?triage=true
To Reproduce
- Open a .bot file that has a LUIS service but no version number (see above about Basic Bot template)
- Open the resources pane and double-click the LUIS app.
- Browser opens.
- If you are logged in to LUIS, the "Loading page ..." toast appears and never goes away.
Expected behavior
Get a modal that says something like, Unable to connect to LUIS app Your LUIS configuation is missing a version number. Please edit your LUIS configuration"
Screenshots
Clicking on the LUIS app in the service pane:
Progress bar in LUIS:
LUIS configuration modal showing that the version was never specified:

[bug]
Is this a request somehow check the result of opening an external link to a web page opened in another process, e.g. a separate chrome or Edge browser? If so, this isn't necessarily possible out of the box since after the handoff, the Emulator will not have access to the external browser process, nor to the contents of a web page opened in it. If this is important to implement, we can hit the LUIS api with the supplied LUIS service version and display an error message if the API sends back a 404. Of course this means there will be a small delay after double clicking on the service and it opening.
Hmm. I don’t quite understand the suggestion below, but the problem from the user POV is that deep links to the LUIS model created by the Basic Bot template in Ibiza fail without explanation (or rather, in LUIS.ai users will see a progress bar that will never ever ever ever ever end).
Could we do a simple solution for now? something like
- User clicks the deep link to LUIS from Services list
- Emulator checks if the LUIS version is given.
- If the version number is missing, show a warning modal to add the version number.
- When the user dismisses the warning modal, the LUIS config window opens with the version number shown as missing (validation error below the empty text field.)
My concern is the Basic Bot template in Ibiza (as of last week), creates a .bot file that is missing the LUIS version, so anyone who created a Basic Bot last week will not be able to deeplink from the Emulator, and they will not know why. I’ve filed a bug on Ibiza to fix the template, but it would be good to cover the Emulator end of it as well.
Melanie
From: Justin Wilaby [email protected] Reply-To: Microsoft/BotFramework-Emulator [email protected] Date: Monday, October 1, 2018 at 3:46 PM To: Microsoft/BotFramework-Emulator [email protected] Cc: Melanie Wang [email protected], Author [email protected] Subject: Re: [Microsoft/BotFramework-Emulator] Emulator: when deep link to LUIS hangs due to missing info, no message appears (#948)
Is this a request somehow check the result of opening an external link to a web page opened in another process, e.g. a separate chrome or Edge browser? If so, this isn't necessarily possible out of the box since after the handoff, the Emulator will not have access to the external browser process, nor to the contents of a web page opened in it. If this is important to implement, we can hit the LUIS api with the supplied LUIS service version and display an error message if the API sends back a 404. Of course this means there will be a small delay after double clicking on the service and it opening.
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoft%2FBotFramework-Emulator%2Fissues%2F948%23issuecomment-426089146&data=02%7C01%7Cmewa%40microsoft.com%7C802f2bc45282488e9dd308d627efad81%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636740307695177590&sdata=ADcA6ikkj594OGK972io%2F5Jmw8s10HeYLgqsBGHibGg%3D&reserved=0, or mute the threadhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAlfwJkMpt74foZ_EySbIVWH8YUZVYQsNks5ugpsvgaJpZM4XC5WS&data=02%7C01%7Cmewa%40microsoft.com%7C802f2bc45282488e9dd308d627efad81%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636740307695187599&sdata=wrV%2BzAc3A%2FqqGOlXDto4kwCdmKHGYWEJinO%2FQf%2F14so%3D&reserved=0.
Holding off on this task until we have a proper service validation strategy for all linkable services.
@mewa1024 I'd like to just validate the fields in the connection form that have an asterisk next to them. OK? How does https://developer.microsoft.com/en-us/fabric#/components/messagebar look as a control to use?
@mewa1024 Can you still repro this issue?
@ivanov-dan yes, I was able to repro. I opened a bot that has a .bot file with a LUIS app without a version. From Emulator, when I double-clicked the LUIS app in the sidebar, the deeplink opened to this page and then hung:

Here's the .bot file, LUIS section highlighted, no version specified:

@cwhitten Not sure I totally understand the question about the Fabric message bar. You mean can we use the message bar to tell the user that the version is missing? Can we use the Notifications pane instead? Also, can we not open the browser at all if we know a field is missing from the .bot file? The way it is now, when the browser opens, I'm no longer looking at Emulator and might not see the error message anyway.