Unreal 5.4.2, vanilla project, packaging for shipping fails after adding some plugins w "Fatal error. System.AccessViolationException"

Hi,

[UPDATE] Simple steps to reproduce:

1.) Create a blank C++ project, package for shipping => all is well

2.) Go to the Marketplace, install “Path Follow” plugin, enter the project, activate “Path Follow”, package for shipping again => packaging breaks

Shipping works with other plugins, but I found the same problem with the free “ObjectDeliverer” plugin (but that one you would need to take from the devs GitHub for a test, as the version released for 5.4 won’t install from the Marketplace, some Metadata issue I guess – I already told the dev).

I submitted this to the Unreal Issues May 22, was registered as Case # 10873097, but it seems so far no trackable issue was created.

[Original post]

Our full project runs perfectly with 5.3.2, as does the packaging for shipping. But with 5.4.2 (and 5.4.1 before) the packaging fails, have a look at the error messages.

I cannot make any sense from this. The workstation is running fine, no sign of corrupt memory at all, it is quite new and in perfect health. And I can build with UE 5.3.2 without any issues.

Any ideas?

[UPDATE]

I tested with a vanilla 5.4.2 project, was able to package it without an issue.

Then I added one by one the plugins we are using and tried to package for shipping.

The first few engine plugins worked fine (“Simple Controller” and "Cesium for Unreal’).
I zipped the working project as a working backup.

Now I added and activated a plugin I suspected, the “Path Follow” plugin that so far worked beautifully for all UE versions, and that was recently updated for 5.4.

When packaging now I got the problem as described, “Fatal error. System.AccessViolationException”.

After de-activating the plugin the packaging still failed with the same error.

After cleaning the project, deleting the .sln solution and all the usual folders like “Binaries”, “Intermediate”, etc., creating a new solution, compiling the project in VS 2022 and then packaging the project again in the UE Editor it still failed, even without the plugin activated!

I tested this with another plugin that was compiled for UE 5.4 (“ObjectDeliverer”), same issue.

Now I got really curious, I unzipped my working backup project, packaged as a test (it worked) and then created a Git repo from it.

Next steps I activated one of the plugins again that causes this error, packaged, this again failed as expected. Now I got into the Git repo and discarded ALL the changes.

Went into UE Editor again, checked that all was in perfect state, the plugin was de-activated again and I packaged - and it still failed! It should have worked, as I was rolling back via Git to the version that worked before, and all the e.g. plugin entries in the .uproject were removed (really removed, not just “enabled” set to “false”).

How? Activating one of these plugins kills the project, it can not be packaged again, even after rolling back to the state before the activation.

I’m totally stumped and have no ideas anymore.

Anyone else having issues or preferably a solution?

Thanks & best
Andreas

UATHelper: Packaging (Windows): Determining max actions to execute in parallel (14 physical cores, 20 logical cores)
UATHelper: Packaging (Windows):   Executing up to 14 processes, one per physical core
UATHelper: Packaging (Windows): Using Parallel executor to run 106 action(s)
UATHelper: Packaging (Windows): ------ Building 106 action(s) started ------
UATHelper: Packaging (Windows): Fatal error. System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
UATHelper: Packaging (Windows): Repeat 2 times:
UATHelper: Packaging (Windows): --------------------------------
UATHelper: Packaging (Windows):    at EpicGames.Core.ManagedProcess.CreateProcess(System.String, System.Text.StringBuilder, IntPtr, IntPtr, Boolean, ProcessCreationFlags, IntPtr, System.String, STARTUPINFOEX, PROCESS_INFORMATION)
UATHelper: Packaging (Windows): --------------------------------
UATHelper: Packaging (Windows):    at EpicGames.Core.ManagedProcess.CreateManagedProcessWin32(EpicGames.Core.ManagedProcessGroup, System.String, System.String, System.String, System.Collections.Generic.IReadOnlyDictionary`2<System.String,System.String>, System.Diagnostics.ProcessPriorityClass, EpicGames.Core.AppContainer, System.Nullable`1<EpicGames.Core.ManagedProcessFlags>)
UATHelper: Packaging (Windows):    at EpicGames.Core.ManagedProcess..ctor(EpicGames.Core.ManagedProcessGroup, System.String, System.String, System.String, System.Collections.Generic.IReadOnlyDictionary`2<System.String,System.String>, System.Diagnostics.ProcessPriorityClass, EpicGames.Core.AppContainer, EpicGames.Core.ManagedProcessFlags)
UATHelper: Packaging (Windows):    at EpicGames.Core.ManagedProcess..ctor(EpicGames.Core.ManagedProcessGroup, System.String, System.String, System.String, System.Collections.Generic.IReadOnlyDictionary`2<System.String,System.String>, Byte[], System.Diagnostics.ProcessPriorityClass, EpicGames.Core.AppContainer, EpicGames.Core.ManagedProcessFlags)
UATHelper: Packaging (Windows):    at UnrealBuildTool.ParallelExecutor+<RunAction>d__25.MoveNext()
UATHelper: Packaging (Windows):    at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[[UnrealBuildTool.ParallelExecutor+<RunAction>d__25, UnrealBuildTool, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null]](<RunAction>d__25 ByRef)
UATHelper: Packaging (Windows):    at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[[System.__Canon, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].Start[[UnrealBuildTool.ParallelExecutor+<RunAction>d__25, UnrealBuildTool, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null]](<RunAction>d__25 ByRef)
UATHelper: Packaging (Windows):    at UnrealBuildTool.ParallelExecutor.RunAction(UnrealBuildTool.LinkedAction, EpicGames.Core.ManagedProcessGroup, System.Threading.CancellationToken, System.String)
UATHelper: Packaging (Windows):    at UnrealBuildTool.ParallelExecutor+<>c__DisplayClass24_0+<<RunAction>b__0>d.MoveNext()
UATHelper: Packaging (Windows):    at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[[UnrealBuildTool.ParallelExecutor+<>c__DisplayClass24_0+<<RunAction>b__0>d, UnrealBuildTool, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null]](<<RunAction>b__0>d ByRef)
UATHelper: Packaging (Windows):    at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[[UnrealBuildTool.ParallelExecutor+<>c__DisplayClass24_0+<<RunAction>b__0>d, UnrealBuildTool, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null]](<<RunAction>b__0>d ByRef)
UATHelper: Packaging (Windows):    at UnrealBuildTool.ParallelExecutor+<>c__DisplayClass24_0.<RunAction>b__0()
UATHelper: Packaging (Windows):    at UnrealBuildTool.ImmediateActionQueue+<>c__DisplayClass48_0.<TryStartOneAction>b__0()
UATHelper: Packaging (Windows):    at System.Threading.Tasks.Task.InnerInvoke()
UATHelper: Packaging (Windows):    at System.Threading.Tasks.Task+<>c.<.cctor>b__272_0(System.Object)
UATHelper: Packaging (Windows):    at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
UATHelper: Packaging (Windows):    at System.Threading.Tasks.Task.ExecuteWithThreadLocal(System.Threading.Tasks.Task ByRef, System.Threading.Thread)
UATHelper: Packaging (Windows):    at System.Threading.Tasks.Task.ExecuteEntryUnsafe(System.Threading.Thread)
UATHelper: Packaging (Windows):    at System.Threading.Tasks.ThreadPoolTaskScheduler+<>c.<.cctor>b__10_0(System.Object)
UATHelper: Packaging (Windows):    at System.Threading.Thread.StartCallback()

This is now fixed after the .uplugin files of the problematic plugins were adapted, instead of EngineVersion entries the correct line now is:

“EngineAssociation”: “5.4”,

With this the plugins didn’t kill the packaging for shipping anymore.

The developer of the awesome & free “ObjectDeliverer” plugin fixed this after I told him about the problem, the developer of the “Path Follow” plugin did not answer so far (maybe he is on vacation or can’t take care of this right now) so I changed this in his plugin myself after moving it from the engine plugins to the project plugins.

Problem solved, I’m happy again. :slight_smile: