I’m encountering a crash when using the Movie Render Queue (MRQ) in Unreal Engine 5. Specifically, the crash occurs deep inside the RenderJob execution path at FInstanceRegistry::AllocateRootInstance(or sometimes at UMovieSceneEntitySystemLinker::GetInstanceRegistry, where the internal check on InstanceRegistry).
Here is the context of my workflow:
I need to render two separate ULevelSequence assets as part of one MRQ job.
I created a dummy (empty) Level Sequence and passed it to MRQ.(I tried make these sequences into one sequencer(using sub-sequence), but same result)
Then, I manually trigger playback of the actual Level Sequences in sync with the rendering process—essentially tricking MRQ into rendering my desired content.
One of the Level Sequences requires dynamic binding of actors and properties, which are defined externally (e.g., via JSON or another file format). This means the binding setup is not known until runtime and must be injected programmatically before rendering.
This setup consistently leads to the crash mentioned above.
I’d like to know:
Is this pattern of usage (dummy sequence + manual playback) officially supported?
Are there safer or more recommended approaches for rendering dynamically defined sequences with MRQ?
Could the crash in GetInstanceRegistry be a known issue or side effect of bypassing standard MRQ usage?
I’m happy to provide additional logs or a minimal repro project if needed.
Is this pattern of usage (dummy sequence + manual playback) officially supported?
No. Movie Render Queue needs to jump around in time for proper rendering. This is because of the warm-up frames and motion blur emulation, only things that are controlled through the Sequence being rendered will remain in sync throughout the render.
Are there safer or more recommended approaches for rendering dynamically defined sequences with MRQ?
There should be nothing stopping you from making whatever modifications you want to level sequences before rendering them, but it’s generally recommended to make the edits at editor time, before PIE is started to do the movie render, which means building a custom Executor to make the edits before the job is started.
Could the crash in GetInstanceRegistry be a known issue or side effect of bypassing standard MRQ usage?
It sounds similar to a crash that was fixed in 5.5. I would try the project in 5.6 to see if the issue goes away, and if not, then yes, a minimal repro case would help as well as logs/crashes.
Just a FYI UE 5.3 is technically out of support. Epic only supports 3 versions back. So any repro that I take to the devs will have to be in a supported version.
I understand that the dummy sequence + manual playback approach is not officially supported, and that using a custom Executor to modify sequences before the job starts would be the recommended path.
It may take some time on my side, but I will update the project to Unreal Engine 5.6 and test the workflow again to see if the crash still occurs.
If the issue persists in 5.6, I will prepare a minimal repro project along with logs and crash reports, and share them with you.