 <p>I put a breakpoint in the getControl method and was able to determine why I was getting the error. <code>$("#SwitchUserDropdown")</code> was not finding anything so when the code below was running it threw the error:</p> <pre class="lang-cs prettyprint-override"><code>var id = Tridion.Utils.Dom.getUniqueID(element); if (id) { var control = instances[id]; if (!control) { control = instances[id] = new ctor(element, settings); if (Tridion.Type.isFunction(control.initialize)) { control.initialize(); } } } else { Tridion.Utils.Assert.raiseError("Unable to get unique id for element."); } return control; </code></pre> <p>It seems obvious now that I know why it was happening that the code was running at the wrong time. I believe it shouldn't run when the CME loads, but only when the popup is opened. This leads me to look at the configuration of the resources in my Editor config file. I had previously grouped my popup's JS with other resources associated with the ribbon toolbar button. By placing the popup specific resources in their own resource group I was able to stop the error and successfully get the control.</p>