seems as though the new promises may have resolved faster, and the upgraded container's shadowRoot may not be fully initialized by the time it is passed to the init function. a solution is to set up an interval timer to periodically check to see if shadowRoot is still null. once it is there, it will resolve the promise