UE4.26 Niagara Assertion Failed Crash Randomly

I created a

343718-qq图片20210710000716.png

Infinite life particle(with no update modules,just some random particle)

343719-qq图片20210710000927.png

and placed it under a static mesh like

343720-qq图片20210710001006.png

No physic enable,just static,all default setting,random crash when PIE like:
Assertion failed: SystemInstance->IsSolo()

I tried enable force solo,but not helping.
Also I tried set solo = true in niagara’s instance every tick by C++,still not working,still got random crash when PIE

It would be appreciated if you could help or provide some information about this bug.

Heya, so I just came across this issue in the full release of UE5.

I have a Niagara system added as a component to a actor, what I did was disable auto activation and instead manually activate it on begin play and I no longer encounter this issue.

Not sure what the gritty details are as to why, I feel like it’s defo trying to perform a check before the instance is ready and this happens during activation.

Hopefully as a workaround this helps unless you found something within the system itself to be the cause.

1 Like

Next time one of you hits this problem, could you post a stacktrace of the crash (you need debug symbols or a source build for that)?

Sure!

It should be easy to replicate if I undo the workaround, I’ll look to reply with a stack trace as soon as I can.

1 Like

Hey! so I have a stacktrace of the crash.

Assertion failed: SystemInstanceController->IsSolo() [File:D:\build\++UE5\Sync\Engine\Plugins\FX\Niagara\Source\Niagara\Private\NiagaraComponent.cpp] [Line: 682]

UnrealEditor_Niagara!UNiagaraComponent::TickComponent() [D:\build\++UE5\Sync\Engine\Plugins\FX\Niagara\Source\Niagara\Private\NiagaraComponent.cpp:682]
UnrealEditor_Engine!FActorComponentTickFunction::ExecuteTickHelper<<lambda_8e93cba63652895611dfa1bc126611cb> >() [D:\build\++UE5\Sync\Engine\Source\Runtime\Engine\Classes\GameFramework\Actor.h:3931]
UnrealEditor_Engine!FActorComponentTickFunction::ExecuteTick() [D:\build\++UE5\Sync\Engine\Source\Runtime\Engine\Private\Components\ActorComponent.cpp:1070]
UnrealEditor_Engine!FTickFunctionTask::DoTask() [D:\build\++UE5\Sync\Engine\Source\Runtime\Engine\Private\TickTaskManager.cpp:284]
UnrealEditor_Engine!TGraphTask<FTickFunctionTask>::ExecuteTask() [D:\build\++UE5\Sync\Engine\Source\Runtime\Core\Public\Async\TaskGraphInterfaces.h:975]
UnrealEditor_Core!FNamedTaskThread::ProcessTasksNamedThread() [D:\build\++UE5\Sync\Engine\Source\Runtime\Core\Private\Async\TaskGraph.cpp:753]
UnrealEditor_Core!FNamedTaskThread::ProcessTasksUntilQuit() [D:\build\++UE5\Sync\Engine\Source\Runtime\Core\Private\Async\TaskGraph.cpp:642]
UnrealEditor_Core!FTaskGraphCompatibilityImplementation::WaitUntilTasksComplete() [D:\build\++UE5\Sync\Engine\Source\Runtime\Core\Private\Async\TaskGraph.cpp:2169]
UnrealEditor_Engine!FTickTaskSequencer::ReleaseTickGroup() [D:\build\++UE5\Sync\Engine\Source\Runtime\Engine\Private\TickTaskManager.cpp:565]
UnrealEditor_Engine!FTickTaskManager::RunTickGroup() [D:\build\++UE5\Sync\Engine\Source\Runtime\Engine\Private\TickTaskManager.cpp:1592]
UnrealEditor_Engine!UWorld::RunTickGroup() [D:\build\++UE5\Sync\Engine\Source\Runtime\Engine\Private\LevelTick.cpp:790]
UnrealEditor_Engine!UWorld::Tick() [D:\build\++UE5\Sync\Engine\Source\Runtime\Engine\Private\LevelTick.cpp:1559]
UnrealEditor_UnrealEd!UEditorEngine::Tick() [D:\build\++UE5\Sync\Engine\Source\Editor\UnrealEd\Private\EditorEngine.cpp:1777]
UnrealEditor_UnrealEd!UUnrealEdEngine::Tick() [D:\build\++UE5\Sync\Engine\Source\Editor\UnrealEd\Private\UnrealEdEngine.cpp:474]
UnrealEditor!FEngineLoop::Tick() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\LaunchEngineLoop.cpp:5215]
UnrealEditor!GuardedMain() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\Launch.cpp:183]
UnrealEditor!GuardedMainWrapper() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:147]
UnrealEditor!LaunchWindowsStartup() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:283]
UnrealEditor!WinMain() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:330]
UnrealEditor!__scrt_common_main_seh() [d:\a01\_work\6\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
kernel32
ntdll

UEMinidump.dmp (924.3 KB)
Also attached the minidump in case it helps.

1 Like

Still happening in 4.27. We have a ton of Niagara components like this so its gonna be a bit of a pain to fix but just wanted to give people a heads up.

I’m on 5.0.3 and my players suddenly started encountering this exact issue. Crash to desktop with only this error:

I had just added a new blood Niagara effect too from the “Blood Splatter Blueprint System”, but it seems like the blueprints already have Auto-Active OFF, and the creator is using “Event Begin Play”. I’ve added a lot of new stuff recently so I’m scouring all Niagara effects I use. Will try to post an update if I find one that was set to auto-activate.

Wow, so this issue / potential solution seems to fit my case exactly.
Right after I typed my previous post, I found an actor that players can spawn which has a Niagara particle effect set to Auto-Activate from the “Portals_VFXPack”. I’ve added it very recently, so the timeline fits. I even have a screenshot from a player attempting to spawn that actor while crashing right at that moment! The particle effect that was set to Auto-Activate is the small purple circle that just got created:
image

It will take some time to test in my case, but this seems very promising!
@Sononeo Thank you so much for posting your potential fix!

1 Like

No problem!

Hopefully it is the solution for you as well.
Though it’s more of a workaround until they hopefully can do a proper fix at some point for it.

Interesting enough this was occurring in my packaged game and I’ve narrowed it down to a blood trail system that spawns decals on the ground. When I removed that I haven’t seen the issue anymore. This blood trail system only activated when the weapon hits an enemy.

Can someone help me with a similar issue?
I’ve tried disabling auto activate and it still keeps crashing randomly.
I have a muzzle flash, projectile and impact fx (all Niagara). I can’t isolate which one is causing the crash. I tried allowing only one Niagara system at a time but it won’t crash with just one system enabled. This is really getting on my nerve since I don’t know why its doing this.

Did you try it in newer versions of the engine?

Sorry, should have said what engine I was on.
5.1.0

1 Like

Have you tried checking the box to Force Solo and seeing if that works?

There’s something that the engine automatically does, I think akin to batching for particle systems but forcing it to be solo would ensure that the sim will be created anew.

I’ve found there are cases, such as object pooled instances in my particular issue where particle systems need to be forced solo. I think due to the way an object is loaded/instantiated with a niagara system component attached may have issues if auto-activate is enabled.

2 Likes

I checked the Force Solo box and that seems to have fixed the issue. I’ve been working on it since you posted and hasn’t crashed for that reason since checking that box.
Thank you!

1 Like

No problem! Glad to have been of help :man_bowing:

I have the same problem occasionally, will this problem be solved in 5.2? @UnrealEngine5.1

Had something similar here, the cause was the NiagaraComponent was set to replicate and IsSolo was off.
When the server activates the component, the ActorComponent bIsActive is replicated to the client. On the client, OnRep_IsActive() in the ActorComponent enables ticking. Then the NiagaraComponent Tick function hits that check because it’s not supposed to tick if IsSolo is off. Niagara wants to control the ticking via IsSolo but the actor component it’s based on bypasses that and enables ticking, but only when the active flag is replicated, so only the client crashes.
In this case the effect was being triggered on the server and client anyway so had no need to replicate, just unticked the replicates box on the component.

1 Like