EQS EnvQueryContext ProvideSingleActor Blueprint compile bug

I encountered this bug following the Unreal training stream found here:
Setting Up Advanced AI:

In the comments others have run into this bug as well. This is related to the answer hub question here:

It was stated that a new report be made about ProvideSingleActor over six months ago, and it seems that it has not been addressed.

Problem: When something is changed in the ProvideSingleActor function after the first compile and save, it no longer returns anything.

Using 4.14.3.

-Create a new Blueprint ThirdPersonShooter template project.
-Create a new Environment Query.

-Create a new EQSTestPawn blueprint class and drag it into the project.

-Set Query Template in EQSTestPawn to created environment Query.

-Create new blueprint from parent EnvQueryContext_BlueprintBase

-Override ProvideSingleActor in new context blueprint class.

-Set returned actor to the querying actor.

-Set up some test in the EQ that uses the new context. It works.

-Now, change ProvideSingleActor to return the ThirdPersonCharacter instance. It reports a successful compile but that context no longer returns a value.

-Create a new context as above and first make it return the ThirdPersonCharacter actor, and it works as expected. Change this new context to the simple returning querying actor and it no longer returns a result.

The workaround of course is to just create a new context and do it how you want to first, then it works. It seems the function ProvideSingleActor in EnvQueryContext_BlueprintBase is failing to recompile properly after initialization.

Hey Rejji,

I’ve reproduced your issue and have entered a bug report, which you can track using the link below:

Thanks for your report.

Have a great day

I experience this bug as well. After playing around with it quite a lot, I found that the context will fail after every compile - even if only a reroute node was added. I did not test specifically if it was only happening for the testing pawn, or for everything.

A simple work around is to reload the map (no need to reload the whole project.)