Crash loading a BP interface that has a circular reference

By circular reference, I mean having a function in interface which has an input pin of type of a BP instance that references interface. Example:

  • Interface MyGameStateInterface contains function SetPlayer with one pint of type MyPawn.
  • Blueprint MyPawn calls SetPlayer(self) on GameState, which implements MyGameStateInterface.

I lost quite a bit of work to this one, since it only blows up after you close and re-launch editor. This is on 4.5. The callstack clearly shows infinite recursion.

Hi ,

Thanks for report! team is working on abolishing all circular dependency load issues, and many have be fixed in 4.5, but until a linker rewrite they won’t be able to fix all cases. only thing you can do until then is to find and remove dependency. I will let you know when I see that update.

Thanks! I’m working around it by changing type to Pawn and casting it to expected type in interface implementation. It’s just a bit annoying that bug booby traps your project and you only find out about it later.