This is old but I thought I’d check in. I have the same problem using the iframe api. I think it might be that I’m destroying the iframe before waiting for “readyToClose”. Could that be related?
My use case is described in my blog post. Basically I’m trying to move participants among breakout rooms and occasionally I’m seeing this problem. Today I’m going to try to wait for “readyToClose” to see if it helps but it’s hard to test, unfortunately (I need lots of people in the room to see it).
I still haven’t even checked my Prosody version, but my update to ensure that I wait for “readyToClose” every time I programmatically hangup someone seems to have worked. On Wednesday I generated ~5 ghosts without waiting for that (in a meeting with ~25 people constantly being put in other breakout rooms) and today I had no ghosts after implementing that check.