4.7* - BP Dispatchers now asking by "signatures"

After upgrade the project to 4.7 I began to get some warnings on Dispatchers created:

Does anyone know how to get rid from this?

Thank you.

Hi creasso,

Have you moved any of the assets that are using dispatchers? Try right-clicking the folders in the Content Browser and choose clean up redirectors.

If that doesn’t help, can you try recreating these errors in a new project and then provide the project here or exact repro steps?

I think that probably yes, I’ve moved some.

The Clean Redirectors command “alone” didn’t solved the problem, but since you think that this could be the origin I got an idea: I’ll try clean the redirectors and “after” go where the assets are being used and replace the BP references with the new “adresses”.

Unfortunatelly I have not idea about how I could “to start” trying to reproduce the error. But now, looking my old log screenshot from this post I’ve noticed the number of errors grown so, is not an issue related specifically to upgrade so I can try.

One thing that I would like to ask is if you could explain me what is this “outer” thing. I know this word since UDK UScript but never got an answer about what is this.

Let’s see if with more data you can identify what happened, I’ll get just one warning to dissecate:

Hope it helps.

More info…

Decided to “test” the theory about these warnings being related to redirectors.
I thought that if I duplicate the troubling class their “adresses/paths” should be overriden to the new one on creation…

44682-duplitest.jpg

After this gone into the Dispatcher consummer, changed the variable type, “rewired” all connections…

This does not generate any “redirector” since the variable is getting its type right from the duplicate.

But…

More Info I guess I’m getting close.

Watching my warnings “ALL” of them are being generated by:

  • Dispatcher from an UOBJECT child class BP (Widget, AnimInstance/BP, DialogConnector).
  • Binded on an ACTOR child Class (AHUD, Skill, NPCClass).

EASY REPRODUCTION ACHIEVED!

1 - Launch the engine (can be 4.7).
2 - Create a ThirdPerson project C++.
3 - Add a dispatcher on the Animation Blueprint:

4 - Create an Actor Blueprint that does uses the dispatcher:

5 - Place an instance of this “consummer actor” on level:

6 - Run with -log:

Hi creasso,

I was able to reproduce this warning with the steps you provided. However I’m currently unsure what is causing it, but the dispatcher seems to work correctly. We are investigating the issue further and I hope to post back here soon.

If you find the cause in the meantime, please post back here to let us know.

The deeper I gone was that the warning is thrown on LinkerLoad.cpp Line 3740 and is something related to Circular Dependencies… BUT

On the specific test case I’ve sent to you there is not “by what I understand” any circular dependency since the only object getting/holding a reference is the actor (consummer). The object “again… by what I understand” doesn’t need know who or each one class that is hearing the dispatcher neither the event “broadcast”.

Unfortunatelly I have no idea about how Blueprint Generated delegates are created on compile or stored when they’re part from an actor placed on level or used by an ActorHUD, so I’ll be of few use on helping tracking this further.

It’s told on code comments that this warning will be removed on 4.8 and as you could watch this doesn’t prevents the dispatcher from work at all, BUT my worries are about: Since this is being “got as warning thrower, but shouldn’t be” maybe on future updates this can be simply ignored or in the worst case being “promoted” to an error thrower.

Well, you are aware from the situation. So you from Epic will find a solution as always. :smiley:

You are correct, it does link back to circular dependencies but our blueprint devs have informed me that many of these warnings have been corrected in 4.8. I just attempted to reproduce this in 4.8 Preview 4 and it is indeed fixed.

If you see them pop up again, please post back here to let us know.

Cheers,

TJ