Недавно я столкнулся с той же проблемой.
Причина этой проблемы в том, что закрытие операции перед диалогом отменяется. Существуют разные причины для того, чтобы это произошло. Те, о которых упоминалось выше, также верны.
Я попал в ситуацию, потому что в потоке я вызывал функцию, которая выбрасывала исключение. Из-за чего окно было уволено и, следовательно, исключение.