“The given key was not present in the dictionary.” error when ending dialog












0















Im using botframework 4 (c#) together with Qnamaker to make a qnabot. I want the bot to go through give alternative questions if qna-service returns more than 1 answer.



So I've made a dialog that does that. However then it goes through the steps and comes to the end and I call context.EndDialogAsync() it throws an "The given key was not present in the dictionary."-error.



If I type something into the chat after this it will run the dialog-step over again and rinse and repeat.



Anyone got any ideas what might be the issue? Im willing to the code I just don't know code that could be causing the error.



Im trying to follow this example as much as possible: https://github.com/Microsoft/BotBuilder-Samples/tree/master/samples/csharp_dotnetcore/51.cafe-bot



One difference is I couldn't get the bot to find my Dialog if I added it to in the MainDispatcher like they have done in the example (it couldn't find it). If I however added it to the "class" : IBot it worked. Could it be related?



Appreciate any help or tips on how I can debug this, thanks!



This sets up the dialog and all the steps in the waterfall works until I get to the last one and try to call EndDialogAsync.



        public OptionsDialog(IStatePropertyAccessor<QnaProperty> qnaAccessors, IEnumerable<WaterfallStep> steps = null, string dialogId = null)
: base(Name)
{
QnAAccessor = qnaAccessors ?? throw new ArgumentNullException(nameof(qnaAccessors));

var waterfallStepsOptions = new WaterfallStep
{
PromptQuestionAsync,
WriteAnswerAsync,
HelpfulResponseAsync,
};

AddDialog(new WaterfallDialog(WaterfallStepsName, waterfallStepsOptions));
ChoicePrompt choice = new ChoicePrompt(QuestionPromptName);
choice.Style = ListStyle.SuggestedAction;
AddDialog(choice);
AddDialog(new ChoicePrompt(HelpfulPromptName));
}


Last waterfall step:



        private async Task<DialogTurnResult> HelpfulResponseAsync(WaterfallStepContext stepContext,
CancellationToken cancellationToken)
{
var answer = (stepContext.Result as FoundChoice).Value;
if (answer == "Yes")
{
await stepContext.Context.SendActivityAsync(MessageFactory.Text($"Great!"), cancellationToken);
}
else
{
await stepContext.Context.SendActivityAsync(MessageFactory.Text($"Maybe try rephrasing your question else here's a link to the documentation: LINK"), cancellationToken);
}

return await stepContext.EndDialogAsync(cancellationToken);
}


The dialog thats starts this dialog looks like this:



        public MainDialog(BotServices services, ConversationState conversationState, string dialogId = null)
: base(Name)
{
_services = services ?? throw new ArgumentNullException(nameof(services));
_qnaAccessor = conversationState.CreateProperty<QnaProperty>(QnaProperty);
_dialogAccessor = conversationState.CreateProperty<DialogState>(DialogProperty);

_dialogs = new DialogSet(_dialogAccessor);
}

public override async Task<DialogTurnResult> BeginDialogAsync(DialogContext dc, object options = null,
CancellationToken cancellationToken = default(CancellationToken))
{
var response = await _services.QnAServices[QnaConfiguration].GetAnswersAsync(dc.Context);
var qnaProperty = await _qnaAccessor.GetAsync(dc.Context, () => new QnaProperty(response));
//var qnaProperty = await _qnaAccessor.SetAsync(dc.Context, response, cancellationToken);

if (response != null && response.Length > 1)
{
return await dc.BeginDialogAsync(OptionsDialog.Name, cancellationToken);
}
else if (response != null && response.Length == 1)
{
await dc.Context.SendActivityAsync(response[0].Answer, cancellationToken: cancellationToken);
}
else
{
var msg = @"No QnA Maker answers were found.";

await dc.Context.SendActivityAsync(msg, cancellationToken: cancellationToken);
}

return await dc.EndDialogAsync(cancellationToken);
}


EDIT:



It seems to work when I moved the logic from MainDispatcher Dialog to just the IBot class instead, so Im assuming maybe the issue is with finding the dialog when it's instantiated in the Ibot class instead of the maindialog. Maybe?










share|improve this question




















  • 1





    Please add a code snippet, where you exception gets thrown. Searching your linked repo has three sites of results containing 'EndDialogAsync'.

    – nilsK
    Nov 21 '18 at 16:19











  • Added some of the code, hopefully it's relevant. Thanks for your reply.

    – Alun
    Nov 22 '18 at 6:53











  • Thank you for posting your code, but I wonder if it still may not be enough. Have you determined that it is indeed the EndDialogAsync method that is throwing the error? My suspicion is that the error is being caused not by the dialog you're ending but by the dialog that the conversation is trying to switch to after that. What are you expecting to happen when that dialog ends?

    – Kyle Delaney
    Nov 27 '18 at 1:17











  • Do you still need help?

    – Kyle Delaney
    Dec 4 '18 at 3:52






  • 1





    Hello, sorry hadn't noticed I got a reply here. Well I never fixed the problem but worked around ut by removing the MainDispatcher from the equation and just doing what that does in the : Ibot class instead. This change worked without chaching anything in the dialog that contains the waterfall steps so Im assuming it had something to do with setting up the dialogs in different places maybe? Or maybe it had something to do with calling EndDialog and not having a ContinueDialog in the previous one but iirc it should just default to sending it up the dialogstack if that was the case?

    – Alun
    Dec 5 '18 at 12:22


















0















Im using botframework 4 (c#) together with Qnamaker to make a qnabot. I want the bot to go through give alternative questions if qna-service returns more than 1 answer.



So I've made a dialog that does that. However then it goes through the steps and comes to the end and I call context.EndDialogAsync() it throws an "The given key was not present in the dictionary."-error.



If I type something into the chat after this it will run the dialog-step over again and rinse and repeat.



Anyone got any ideas what might be the issue? Im willing to the code I just don't know code that could be causing the error.



Im trying to follow this example as much as possible: https://github.com/Microsoft/BotBuilder-Samples/tree/master/samples/csharp_dotnetcore/51.cafe-bot



One difference is I couldn't get the bot to find my Dialog if I added it to in the MainDispatcher like they have done in the example (it couldn't find it). If I however added it to the "class" : IBot it worked. Could it be related?



Appreciate any help or tips on how I can debug this, thanks!



This sets up the dialog and all the steps in the waterfall works until I get to the last one and try to call EndDialogAsync.



        public OptionsDialog(IStatePropertyAccessor<QnaProperty> qnaAccessors, IEnumerable<WaterfallStep> steps = null, string dialogId = null)
: base(Name)
{
QnAAccessor = qnaAccessors ?? throw new ArgumentNullException(nameof(qnaAccessors));

var waterfallStepsOptions = new WaterfallStep
{
PromptQuestionAsync,
WriteAnswerAsync,
HelpfulResponseAsync,
};

AddDialog(new WaterfallDialog(WaterfallStepsName, waterfallStepsOptions));
ChoicePrompt choice = new ChoicePrompt(QuestionPromptName);
choice.Style = ListStyle.SuggestedAction;
AddDialog(choice);
AddDialog(new ChoicePrompt(HelpfulPromptName));
}


Last waterfall step:



        private async Task<DialogTurnResult> HelpfulResponseAsync(WaterfallStepContext stepContext,
CancellationToken cancellationToken)
{
var answer = (stepContext.Result as FoundChoice).Value;
if (answer == "Yes")
{
await stepContext.Context.SendActivityAsync(MessageFactory.Text($"Great!"), cancellationToken);
}
else
{
await stepContext.Context.SendActivityAsync(MessageFactory.Text($"Maybe try rephrasing your question else here's a link to the documentation: LINK"), cancellationToken);
}

return await stepContext.EndDialogAsync(cancellationToken);
}


The dialog thats starts this dialog looks like this:



        public MainDialog(BotServices services, ConversationState conversationState, string dialogId = null)
: base(Name)
{
_services = services ?? throw new ArgumentNullException(nameof(services));
_qnaAccessor = conversationState.CreateProperty<QnaProperty>(QnaProperty);
_dialogAccessor = conversationState.CreateProperty<DialogState>(DialogProperty);

_dialogs = new DialogSet(_dialogAccessor);
}

public override async Task<DialogTurnResult> BeginDialogAsync(DialogContext dc, object options = null,
CancellationToken cancellationToken = default(CancellationToken))
{
var response = await _services.QnAServices[QnaConfiguration].GetAnswersAsync(dc.Context);
var qnaProperty = await _qnaAccessor.GetAsync(dc.Context, () => new QnaProperty(response));
//var qnaProperty = await _qnaAccessor.SetAsync(dc.Context, response, cancellationToken);

if (response != null && response.Length > 1)
{
return await dc.BeginDialogAsync(OptionsDialog.Name, cancellationToken);
}
else if (response != null && response.Length == 1)
{
await dc.Context.SendActivityAsync(response[0].Answer, cancellationToken: cancellationToken);
}
else
{
var msg = @"No QnA Maker answers were found.";

await dc.Context.SendActivityAsync(msg, cancellationToken: cancellationToken);
}

return await dc.EndDialogAsync(cancellationToken);
}


EDIT:



It seems to work when I moved the logic from MainDispatcher Dialog to just the IBot class instead, so Im assuming maybe the issue is with finding the dialog when it's instantiated in the Ibot class instead of the maindialog. Maybe?










share|improve this question




















  • 1





    Please add a code snippet, where you exception gets thrown. Searching your linked repo has three sites of results containing 'EndDialogAsync'.

    – nilsK
    Nov 21 '18 at 16:19











  • Added some of the code, hopefully it's relevant. Thanks for your reply.

    – Alun
    Nov 22 '18 at 6:53











  • Thank you for posting your code, but I wonder if it still may not be enough. Have you determined that it is indeed the EndDialogAsync method that is throwing the error? My suspicion is that the error is being caused not by the dialog you're ending but by the dialog that the conversation is trying to switch to after that. What are you expecting to happen when that dialog ends?

    – Kyle Delaney
    Nov 27 '18 at 1:17











  • Do you still need help?

    – Kyle Delaney
    Dec 4 '18 at 3:52






  • 1





    Hello, sorry hadn't noticed I got a reply here. Well I never fixed the problem but worked around ut by removing the MainDispatcher from the equation and just doing what that does in the : Ibot class instead. This change worked without chaching anything in the dialog that contains the waterfall steps so Im assuming it had something to do with setting up the dialogs in different places maybe? Or maybe it had something to do with calling EndDialog and not having a ContinueDialog in the previous one but iirc it should just default to sending it up the dialogstack if that was the case?

    – Alun
    Dec 5 '18 at 12:22
















0












0








0








Im using botframework 4 (c#) together with Qnamaker to make a qnabot. I want the bot to go through give alternative questions if qna-service returns more than 1 answer.



So I've made a dialog that does that. However then it goes through the steps and comes to the end and I call context.EndDialogAsync() it throws an "The given key was not present in the dictionary."-error.



If I type something into the chat after this it will run the dialog-step over again and rinse and repeat.



Anyone got any ideas what might be the issue? Im willing to the code I just don't know code that could be causing the error.



Im trying to follow this example as much as possible: https://github.com/Microsoft/BotBuilder-Samples/tree/master/samples/csharp_dotnetcore/51.cafe-bot



One difference is I couldn't get the bot to find my Dialog if I added it to in the MainDispatcher like they have done in the example (it couldn't find it). If I however added it to the "class" : IBot it worked. Could it be related?



Appreciate any help or tips on how I can debug this, thanks!



This sets up the dialog and all the steps in the waterfall works until I get to the last one and try to call EndDialogAsync.



        public OptionsDialog(IStatePropertyAccessor<QnaProperty> qnaAccessors, IEnumerable<WaterfallStep> steps = null, string dialogId = null)
: base(Name)
{
QnAAccessor = qnaAccessors ?? throw new ArgumentNullException(nameof(qnaAccessors));

var waterfallStepsOptions = new WaterfallStep
{
PromptQuestionAsync,
WriteAnswerAsync,
HelpfulResponseAsync,
};

AddDialog(new WaterfallDialog(WaterfallStepsName, waterfallStepsOptions));
ChoicePrompt choice = new ChoicePrompt(QuestionPromptName);
choice.Style = ListStyle.SuggestedAction;
AddDialog(choice);
AddDialog(new ChoicePrompt(HelpfulPromptName));
}


Last waterfall step:



        private async Task<DialogTurnResult> HelpfulResponseAsync(WaterfallStepContext stepContext,
CancellationToken cancellationToken)
{
var answer = (stepContext.Result as FoundChoice).Value;
if (answer == "Yes")
{
await stepContext.Context.SendActivityAsync(MessageFactory.Text($"Great!"), cancellationToken);
}
else
{
await stepContext.Context.SendActivityAsync(MessageFactory.Text($"Maybe try rephrasing your question else here's a link to the documentation: LINK"), cancellationToken);
}

return await stepContext.EndDialogAsync(cancellationToken);
}


The dialog thats starts this dialog looks like this:



        public MainDialog(BotServices services, ConversationState conversationState, string dialogId = null)
: base(Name)
{
_services = services ?? throw new ArgumentNullException(nameof(services));
_qnaAccessor = conversationState.CreateProperty<QnaProperty>(QnaProperty);
_dialogAccessor = conversationState.CreateProperty<DialogState>(DialogProperty);

_dialogs = new DialogSet(_dialogAccessor);
}

public override async Task<DialogTurnResult> BeginDialogAsync(DialogContext dc, object options = null,
CancellationToken cancellationToken = default(CancellationToken))
{
var response = await _services.QnAServices[QnaConfiguration].GetAnswersAsync(dc.Context);
var qnaProperty = await _qnaAccessor.GetAsync(dc.Context, () => new QnaProperty(response));
//var qnaProperty = await _qnaAccessor.SetAsync(dc.Context, response, cancellationToken);

if (response != null && response.Length > 1)
{
return await dc.BeginDialogAsync(OptionsDialog.Name, cancellationToken);
}
else if (response != null && response.Length == 1)
{
await dc.Context.SendActivityAsync(response[0].Answer, cancellationToken: cancellationToken);
}
else
{
var msg = @"No QnA Maker answers were found.";

await dc.Context.SendActivityAsync(msg, cancellationToken: cancellationToken);
}

return await dc.EndDialogAsync(cancellationToken);
}


EDIT:



It seems to work when I moved the logic from MainDispatcher Dialog to just the IBot class instead, so Im assuming maybe the issue is with finding the dialog when it's instantiated in the Ibot class instead of the maindialog. Maybe?










share|improve this question
















Im using botframework 4 (c#) together with Qnamaker to make a qnabot. I want the bot to go through give alternative questions if qna-service returns more than 1 answer.



So I've made a dialog that does that. However then it goes through the steps and comes to the end and I call context.EndDialogAsync() it throws an "The given key was not present in the dictionary."-error.



If I type something into the chat after this it will run the dialog-step over again and rinse and repeat.



Anyone got any ideas what might be the issue? Im willing to the code I just don't know code that could be causing the error.



Im trying to follow this example as much as possible: https://github.com/Microsoft/BotBuilder-Samples/tree/master/samples/csharp_dotnetcore/51.cafe-bot



One difference is I couldn't get the bot to find my Dialog if I added it to in the MainDispatcher like they have done in the example (it couldn't find it). If I however added it to the "class" : IBot it worked. Could it be related?



Appreciate any help or tips on how I can debug this, thanks!



This sets up the dialog and all the steps in the waterfall works until I get to the last one and try to call EndDialogAsync.



        public OptionsDialog(IStatePropertyAccessor<QnaProperty> qnaAccessors, IEnumerable<WaterfallStep> steps = null, string dialogId = null)
: base(Name)
{
QnAAccessor = qnaAccessors ?? throw new ArgumentNullException(nameof(qnaAccessors));

var waterfallStepsOptions = new WaterfallStep
{
PromptQuestionAsync,
WriteAnswerAsync,
HelpfulResponseAsync,
};

AddDialog(new WaterfallDialog(WaterfallStepsName, waterfallStepsOptions));
ChoicePrompt choice = new ChoicePrompt(QuestionPromptName);
choice.Style = ListStyle.SuggestedAction;
AddDialog(choice);
AddDialog(new ChoicePrompt(HelpfulPromptName));
}


Last waterfall step:



        private async Task<DialogTurnResult> HelpfulResponseAsync(WaterfallStepContext stepContext,
CancellationToken cancellationToken)
{
var answer = (stepContext.Result as FoundChoice).Value;
if (answer == "Yes")
{
await stepContext.Context.SendActivityAsync(MessageFactory.Text($"Great!"), cancellationToken);
}
else
{
await stepContext.Context.SendActivityAsync(MessageFactory.Text($"Maybe try rephrasing your question else here's a link to the documentation: LINK"), cancellationToken);
}

return await stepContext.EndDialogAsync(cancellationToken);
}


The dialog thats starts this dialog looks like this:



        public MainDialog(BotServices services, ConversationState conversationState, string dialogId = null)
: base(Name)
{
_services = services ?? throw new ArgumentNullException(nameof(services));
_qnaAccessor = conversationState.CreateProperty<QnaProperty>(QnaProperty);
_dialogAccessor = conversationState.CreateProperty<DialogState>(DialogProperty);

_dialogs = new DialogSet(_dialogAccessor);
}

public override async Task<DialogTurnResult> BeginDialogAsync(DialogContext dc, object options = null,
CancellationToken cancellationToken = default(CancellationToken))
{
var response = await _services.QnAServices[QnaConfiguration].GetAnswersAsync(dc.Context);
var qnaProperty = await _qnaAccessor.GetAsync(dc.Context, () => new QnaProperty(response));
//var qnaProperty = await _qnaAccessor.SetAsync(dc.Context, response, cancellationToken);

if (response != null && response.Length > 1)
{
return await dc.BeginDialogAsync(OptionsDialog.Name, cancellationToken);
}
else if (response != null && response.Length == 1)
{
await dc.Context.SendActivityAsync(response[0].Answer, cancellationToken: cancellationToken);
}
else
{
var msg = @"No QnA Maker answers were found.";

await dc.Context.SendActivityAsync(msg, cancellationToken: cancellationToken);
}

return await dc.EndDialogAsync(cancellationToken);
}


EDIT:



It seems to work when I moved the logic from MainDispatcher Dialog to just the IBot class instead, so Im assuming maybe the issue is with finding the dialog when it's instantiated in the Ibot class instead of the maindialog. Maybe?







c# botframework






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 22 '18 at 7:56







Alun

















asked Nov 21 '18 at 15:28









AlunAlun

93




93








  • 1





    Please add a code snippet, where you exception gets thrown. Searching your linked repo has three sites of results containing 'EndDialogAsync'.

    – nilsK
    Nov 21 '18 at 16:19











  • Added some of the code, hopefully it's relevant. Thanks for your reply.

    – Alun
    Nov 22 '18 at 6:53











  • Thank you for posting your code, but I wonder if it still may not be enough. Have you determined that it is indeed the EndDialogAsync method that is throwing the error? My suspicion is that the error is being caused not by the dialog you're ending but by the dialog that the conversation is trying to switch to after that. What are you expecting to happen when that dialog ends?

    – Kyle Delaney
    Nov 27 '18 at 1:17











  • Do you still need help?

    – Kyle Delaney
    Dec 4 '18 at 3:52






  • 1





    Hello, sorry hadn't noticed I got a reply here. Well I never fixed the problem but worked around ut by removing the MainDispatcher from the equation and just doing what that does in the : Ibot class instead. This change worked without chaching anything in the dialog that contains the waterfall steps so Im assuming it had something to do with setting up the dialogs in different places maybe? Or maybe it had something to do with calling EndDialog and not having a ContinueDialog in the previous one but iirc it should just default to sending it up the dialogstack if that was the case?

    – Alun
    Dec 5 '18 at 12:22
















  • 1





    Please add a code snippet, where you exception gets thrown. Searching your linked repo has three sites of results containing 'EndDialogAsync'.

    – nilsK
    Nov 21 '18 at 16:19











  • Added some of the code, hopefully it's relevant. Thanks for your reply.

    – Alun
    Nov 22 '18 at 6:53











  • Thank you for posting your code, but I wonder if it still may not be enough. Have you determined that it is indeed the EndDialogAsync method that is throwing the error? My suspicion is that the error is being caused not by the dialog you're ending but by the dialog that the conversation is trying to switch to after that. What are you expecting to happen when that dialog ends?

    – Kyle Delaney
    Nov 27 '18 at 1:17











  • Do you still need help?

    – Kyle Delaney
    Dec 4 '18 at 3:52






  • 1





    Hello, sorry hadn't noticed I got a reply here. Well I never fixed the problem but worked around ut by removing the MainDispatcher from the equation and just doing what that does in the : Ibot class instead. This change worked without chaching anything in the dialog that contains the waterfall steps so Im assuming it had something to do with setting up the dialogs in different places maybe? Or maybe it had something to do with calling EndDialog and not having a ContinueDialog in the previous one but iirc it should just default to sending it up the dialogstack if that was the case?

    – Alun
    Dec 5 '18 at 12:22










1




1





Please add a code snippet, where you exception gets thrown. Searching your linked repo has three sites of results containing 'EndDialogAsync'.

– nilsK
Nov 21 '18 at 16:19





Please add a code snippet, where you exception gets thrown. Searching your linked repo has three sites of results containing 'EndDialogAsync'.

– nilsK
Nov 21 '18 at 16:19













Added some of the code, hopefully it's relevant. Thanks for your reply.

– Alun
Nov 22 '18 at 6:53





Added some of the code, hopefully it's relevant. Thanks for your reply.

– Alun
Nov 22 '18 at 6:53













Thank you for posting your code, but I wonder if it still may not be enough. Have you determined that it is indeed the EndDialogAsync method that is throwing the error? My suspicion is that the error is being caused not by the dialog you're ending but by the dialog that the conversation is trying to switch to after that. What are you expecting to happen when that dialog ends?

– Kyle Delaney
Nov 27 '18 at 1:17





Thank you for posting your code, but I wonder if it still may not be enough. Have you determined that it is indeed the EndDialogAsync method that is throwing the error? My suspicion is that the error is being caused not by the dialog you're ending but by the dialog that the conversation is trying to switch to after that. What are you expecting to happen when that dialog ends?

– Kyle Delaney
Nov 27 '18 at 1:17













Do you still need help?

– Kyle Delaney
Dec 4 '18 at 3:52





Do you still need help?

– Kyle Delaney
Dec 4 '18 at 3:52




1




1





Hello, sorry hadn't noticed I got a reply here. Well I never fixed the problem but worked around ut by removing the MainDispatcher from the equation and just doing what that does in the : Ibot class instead. This change worked without chaching anything in the dialog that contains the waterfall steps so Im assuming it had something to do with setting up the dialogs in different places maybe? Or maybe it had something to do with calling EndDialog and not having a ContinueDialog in the previous one but iirc it should just default to sending it up the dialogstack if that was the case?

– Alun
Dec 5 '18 at 12:22







Hello, sorry hadn't noticed I got a reply here. Well I never fixed the problem but worked around ut by removing the MainDispatcher from the equation and just doing what that does in the : Ibot class instead. This change worked without chaching anything in the dialog that contains the waterfall steps so Im assuming it had something to do with setting up the dialogs in different places maybe? Or maybe it had something to do with calling EndDialog and not having a ContinueDialog in the previous one but iirc it should just default to sending it up the dialogstack if that was the case?

– Alun
Dec 5 '18 at 12:22














0






active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53415355%2fthe-given-key-was-not-present-in-the-dictionary-error-when-ending-dialog%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes
















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53415355%2fthe-given-key-was-not-present-in-the-dictionary-error-when-ending-dialog%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Can a sorcerer learn a 5th-level spell early by creating spell slots using the Font of Magic feature?

ts Property 'filter' does not exist on type '{}'

Notepad++ export/extract a list of installed plugins