Я только что понял, что при вызове диалога через скрипт проверяйте, что ObjectId Guid проходит. Если предоставленный Guid не существует в базе данных CRM, диалоговое окно будет зависать без каких-либо ошибок. Это может произойти, если вы хотите создать диалог, для которого не нужна запись объекта. В этом случае вы просто хотите, чтобы неактивная запись была назначена как ObjectId.
function CallDialog()
{
var clientId = Xrm.Page.context.getClientUrl();
var url = clientId + "/cs/dialog/rundialog.aspx?DialogId=%7b460ACCDC-701C-4947-8E72-CDE2C53807FC%7d&EntityName=EntityName&ObjectId=%7b115fbb02-b5a5-e711-8122-005056b32967%7d";
window.open(url,"", "width=700,height=600");
}