Hi @eanticev, I just invited you to the Slack channel, so we can discuss your issue there. I am currently out of office and I don’t have the code to double check, but it seems that an FSM is ticking but its context object has been released by the garbage collector. I will look further into the issue as soon as I am back. As a stopgap measure, you can try replacing the offending Assert you should find at GCFSMState.h:112 with a
@staskjs I have sent a patch to @eanticev on Slack, but I didn’t receive confirmation if it actually fixes the issue. I will send you a PM with the patch so you can check it. As for the assert, you can’t find it at GCFSMState.h:112 because it has been inlined by the compiler. It’s actually called by the automatically-generated function OnTick().
I am also getting an “Object is not running FSMs” error from time to time, I can’t figure out where it is coming from. I have even wrapped all "Trigger FSM Event"s with “Is FSM running”, but I still get this error. Could you please explain what it actually means and how it gets triggered?
Also there is probably a bug with fsm replication on a cooked build, as if it goes out of sync, but I am not sure. Sometimes it seems that fsm on server just stops working suddenly, without calling “on Exit”, but client fsm continues to work, but it never goes to the next state, because server becomes broken. It seems to be connected to this “Object is not running FSMs” error. If I try to trigger an event from client (where fsm is running), server shows this error (while fsm is not running on server)
Everything works just fine in the editor.
I also could say, that there wasn’t any problems on 4.23, it all started at 4.24 version.
I’m also starting to run into the issue of the FSM stopping to work on my object but I’m not sure how to debug it properly. The output Log error I get is this -
LogGCFSM: Warning: Event FindTarget not triggered
What would cause an issue like this? I’ve been trying to fix it on my end but any help would be super appreciated.
I found the source of the regression that is causing bugs. This include the following cases:
An FSM unexpectedly stops ticking
“Event X not triggered” messages (that’s because the target FSM has stopped, see point 1)
“Assertion failed: !IsUnreachable()”
I am testing a fix right now and I’m confident I can submit it today. FIY, the problems are triggered by changes in the garbage collection implemented in Unreal 4.24 I was unaware of. Those changes introduced a race condition in the GCFSM code, producing false answers to the question “is the context object of this FSM still reachable”? The code I was using was therefore induced to believe the context object was unreachable when it wasn’t, thus stopping the FSM prematurely and causing 1 and 2, or induced to believed the context was still reachable when it wasn’t, thus keeping the FSM ticking on an unreachable object and causing 3.
Indeed, it went online quicker than I expected! So quick I had missed the notification from Epic and forgot to post here… :o Glad to hear that it works! Thanks to everyone for the reports.
Just a note, please expect another minor fix this week. It seems that a non-critical, but very annoying, issue previously reported by @Ghar has regressed. I already have a fix for that and will submit it soon.
Hi, the upcoming Unreal Engine 4.25 introduces a few API breaking changes. Nothing serious, but a few editor classes have been renamed, so the old code will no longer compile as-is. I am monitoring the situation and will publish a UE 4.25 version of GC FSM when the new editor version is officially released. However, for the brave of you that are already experimenting with the new engine and are able to to build the plugin from the sources, I have just pushed a new version, dubbed v1.7.5, of GC FSM. This version includes the necessary UE 4.25 compatibility fixes and no new features or bugfixes.
Enjoy!
Hi @Archizeff, it’s hard to tell without seeing the project… However I can make some guesses. It seems there is a call to LaunchFSM being performed by a latent function on an object that is going to be destroyed soon. Could you at least share the blueprint that is calling LaunchFSM? If you don’t feel like posting it in the forum, please request an invitation on the dedicated slack channel.
Ugh - very irritating, I can select 4.25 when attempting to install, but hitting “Install” does nothing. Installing to 4.24 works fine…I’m guessing this is a problem on Epic’s end.