According to the y2log, all 3 callbacks are registered as they should be. To me this leaves only one conclusion: The end callback was never called, so the pop-up remained open.