I tried this in an empty 4.4 project. If you use the ‘open mapname’ command then the old widgets will not be destroyed and this can cause some problems.
An easy way to illustrate this is to create a simpel textblock with opacity set at 0.1. Now keep opening new levels and you will notice that the opacity gets fuller and fuller because it keeps stacking that textblock on top of each other. I was doing some binding etc and this caused crashes for me I think.
I tried to reproduce your issue on my end, and all I could get was a lousy crash! But it sounds like you’re getting crashes from this issue too, so I went ahead and reported the bug internally, and hopefully it’ll be fixed by next release. Thank you for helping us by trying out the experimental UMG.
While we’re waiting for a fix, I can perhaps share what I did to work around this issue.
When I create the widget using CreateWidget I bound the result in a variable.
At EndPlay I then called RemoveFromViewport() on the widget variable and made sure I had no lingering references lying around.
As it turns out, this is intended behavior. The reason is that there are circumstances where you would want your user interface to remain intact when you change levels. If you want the widgets to be destroyed when you switch levels, you’ll have to delete them yourself using code or blueprints.