Compile error with ForEachLoopWithBreak

http://puu.sh/gLCph/432c66db7b.png

http://puu.sh/gLCq2/356f3ab963.png

Error COMPILER ERROR: failed building connection with ‘Directions are not compatible’ at ForEachLoopWithBreak

Can you show full blueprint?

Yes, I can.

Hi John,

We could use some additional info.

First which version of the editor are you seeing this error in?

Also, it looks like you modified the ForEachLoopWithBreak macro. If you have, will you post a screenshot of the loops internal blueprint?

I am using the 4.7 branch on github from yesterday.
I have not modified any Engine macros.

Hi John,

I was able to reproduce this in that branch of 4.7.3 and our latest master branch as well. I’ve entered this as JIRA UE-12558 and our developers will be investigating it further.

The workaround I found is to reconstruct the split pins and then split them again. This causes the error to go away but if the Enum pin is connected and then disconnected from anything the error pops up again.

We will post here with updates as we have them.

Cheers,

TJ

Hi John,

This is now fixed in our latest internal build. You should see if working properly in a future update. If all goes well it will likely be included in the 4.8 release.

Cheers,

TJ

Hi TJ, unfortunately the bug is still in 4.9.1. Any update on this?

Hey John,

I just attempted to reproduce this in 4.9.1 using the steps from the JIRA I created, but I couldn’t get your results. Give this a try and let me know what you get. Make sure to include any alternate or new repro steps.

  1. Open a new Blank BP project

  2. Create a Enum named ‘EnumTest’

  3. Inside, add 4-5 new Enumerators

  4. Save & close

  5. Create a Struct named ‘bpStructTest’

  6. Inside, add 2 variables, one a ‘EnumTest’ type

  7. Save & close

  8. Create an Actor class bp named ‘bpLoopTest’ & open it

  9. Create a variable > type ‘bpStructTest’ > make it an array

  10. Add a ‘Get’ of this variable

  11. Drag off > add a ‘ForEachLoopWithBreak’ node

  12. Right click the Enum variable pin and Split the pin

  13. Compile & save (note that no error is present - screenshot #01)

  14. Add a Print String node

  15. Connect the Enum variable pin to the Print String (screenshot #02)

  16. Compile & save

  17. Disconnect the Enum variable pin > Compile & save

Hi TJ, I don’t know what I have done, but “unfortunately” the bug seems to be fixed. I know the error was there 4 days ago, and the only thing I did was adding 2 reroute nodes to the graph (on other pins from the ForEach). Just to make it look better… Then I compiled and the error was gone, I have then tried to remove the reroute nodes again, but it did not gave me the error back.

So I guess it was just left over from 4.8 and doing anything to the graph has fixed it.

Thanks for your help!

I’m getting this ‘Directions are not compatible’ error in 4.10.4.

  • I had an existing macro used in several places that was working fine.
  • I then decided to make a new enum and have the macro return a value of that enum type.
  • After saving, the blueprints using that macro then starting failing to compile.
  • If I removed then enum return value from the macro, then the blueprints compiled OK again.
  • I re-added the enum return value, the blueprints are still OK now…

So it appears to be something to do with how the macro updates, rather than the enum specifically.

Since I have worked around it for now and am fairly busy, I haven’t tried it in 4.11. But will post back if it appears again.

EDIT: Less than a minute after I posted this, it started happening in a random macro in another class that I hadn’t altered in a long time, nor had anything to do with any enum at all. I eventually got it to compile by making arbitrary changes to the connections within the macro, then changing it back to it’s previous state.

Hi Spoondog,

This specific bug was fixed back in 4.8. If you are seeing something similar in 4.10.4, please try reproducing the issue in 4.11.0. Then if it’s still reproducible, post a new report in the Bug section with as much info as possible (exact repro steps, test project, etc).