Unpossess fails with default AIController

Hello,

I use two controllers that I switch to, one is a pure C++ AIController and the second is the BP controller, based on a custom C++ controller class.

The game starts with the AIController, as the default, switching from the AIController to the BPController works as expected and the unpossesss/possess is executed.

Switching back from BPController to AIController, even after an unpossess/possess event happens and verified is triggered, the Pawn still has the BPController assigned (I can verify that in the world outliner in the editor).

Would it be possible that I need to derive the default AIController to another BP ??? Is there a known problem or limitation when using unpossess/possess several times in the same Pawn??

Have to mention that this logic is executed in only one map with different levels, each one using one or the other controller. All the logic is also done in BP so far.
There are no errors reported in the console when the unpossess is executed and fails.

Appreciate your help.

I found that after unpossess, the SetAIClass should be assigned and match the possess node.

It seems to be mandatory to always use the Set AIControllerClass to properly possess a pawn.