Disregard for GC crash in MovieRenderQueue (RenderGraph) when applying post process blends from the PlayerCameraManager

Hello,

We started running into a crash when we moved some post processes from the player camera actor directly to any camera via the PlayerCameraManager’s ApplyCameraModifiers function.

The crash occurs only when rendering via the MovieRenderQueue and triggers during GC due to a DisregardForGC violation.

The message is the following.

“”"

[2026.01.14-17.02.45:597][556]LogGarbage: Warning: Disregard for GC object MovieGraphDeferredRenderPassNode /Script/MovieRenderPipelineRenderPasses.Default__MovieGraphDeferredRenderPassNode referencing MaterialInstanceDynamic /Engine/Transient.MID_MI_PP_SomeEffect which is not part of root set

“”"

This triggers because the CDO for UMovieGraphImagePassBaseNode is referencing runtime MIDs via “this->CurrentInstances[0]->SceneViewStates[0]->Reference->MIDPool”

After stepping through the setup process I don’t quite see what we’re doing wrong and it seems that the bug is in the engine itself, by design “void Setup(const FMovieGraphRenderPassSetupData& InSetupData)” is called on the CDO of UMovieGraphRenderPassNode which will cause it to reference the RendererInstance which in turns references runtime assets.

Cheers,

Benjamin

[Attachment Removed]

Steps to Reproduce[Attachment Removed]

Hello I asked around and no one seems to have heard of any issue here. Are you able to provide a small repro and a video showing us how to run your repro?

[Attachment Removed]

Hey Benjamin,

Thanks for this. The dev was able to repro your issue but unfortunately has not been able to find any workarounds. The only way would be a code change. Are you all able to take a code update or are you working off the launcher build?

[Attachment Removed]

Hello Shaun,

Thanks for your reply. I did struggle a bit to get a minimal repro which actually revealed some additional information.

The crash only happens in the cooked game, we’re running a development build. I imagine that Shipping and maybe Test would skip those GC validation tests and therefore not get the crash.

The crash happens because Garbage Collection runs in the middle of a shot, I had to force this via an event in the sequence for the repro case. In our project the GC runs due to the sequence being rather long and due to the cutscene streaming content in and out. Initially the crash would not repro because the CurrentInstances array on the CDO is cleared at the end of the sequence so any GC pass would not see the invalid references by the time we hit GC.

Please find the repro project attached.

You can repro the crash by cooking the project for windows and running it with the following command line argument “-MoviePipelineConfig=/Game/EditorMoviePipelineQueue”.

In the repro video, I do this via a profile in the project launcher.

[Image Removed]

[Attachment Removed]

There seems to be a problem with the project archive, attempting again

[Attachment Removed]

Hi Shaun,

Thanks for getting back to me. We’re building the engine ourselves so we can take code changes.

[Attachment Removed]