I had this issue since a very long time and I only recently took the time to investigate in depth, here’s what I did to fix it:
in CCTransition.cpp add this line in the destructor of TransitionScene
if (_inScene->getReferenceCount() == 1) _inScene->onExit();
just before the CC_SAFE_RELEASE(_inScene);