Packaged game crash

In UE5.1, my packaged game crashed, but there’s no problem in editor. So far I’ve found that it seems to be a problem with my vehicle skeletal meshes. They were all Vigilante assets which transferred from the old version UE 4.27. When I try to open a map with these assets, my game crashed and I got this:

Assertion failed: RenderSection.DuplicatedVerticesBuffer.DupVertData.Num() [File:D:\build++UE5\Sync\Engine\Source\Runtime\Engine\Private\SkeletalMeshLODRenderData.cpp] [Line: 198]

0x00007ff70e41acb4 A_Space.exe!FSkeletalMeshLODRenderData::InitResources() []
0x00007ff70e41cebb A_Space.exe!FSkeletalMeshRenderData::InitResources() []
0x00007ff70e390bf6 A_Space.exe!USkeletalMesh::InitResources() []
0x00007ff70e381114 A_Space.exe!USkeletalMesh::FinishPostLoadInternal() []
0x00007ff70e484c32 A_Space.exe!USkinnedAsset::PostLoad() []
0x00007ff70e395997 A_Space.exe!USkeletalMesh::PostLoad() []
0x00007ff7056a897a A_Space.exe!UE::Core::Private::Function::TFunctionRefCaller<<lambda_22d10110ca9280980c693db7a74112c1>,void __cdecl(void)>::Call() [D:\RocketSync\5.1.0-23058290+++UE5+Release-5.1\Working\Engine\Source\Runtime\Core\Public\Templates\Function.h:474]
0x00007ff708b45c21 A_Space.exe!TGraphTask::ExecuteTask() []
0x00007ff708b5d1f4 A_Space.exe!FNamedTaskThread::ProcessTasksNamedThread() []
0x00007ff708b5d70e A_Space.exe!FNamedTaskThread::ProcessTasksUntilQuit() []
0x00007ff708b6727f A_Space.exe!FTaskGraphCompatibilityImplementation::WaitUntilTasksComplete() []
0x00007ff70e6c36ed A_Space.exe!FTickTaskSequencer::ReleaseTickGroup() []
0x00007ff70e6d0279 A_Space.exe!FTickTaskManager::RunTickGroup() []
0x00007ff70dcf1cb8 A_Space.exe!UWorld::RunTickGroup() []
0x00007ff70dcf90ad A_Space.exe!UWorld::Tick() []
0x00007ff70da3cc07 A_Space.exe!UGameEngine::Tick() []
0x00007ff7056388af A_Space.exe!FEngineLoop::Tick() []
0x00007ff705651e7e A_Space.exe!GuardedMain() []
0x00007ff705651f5a A_Space.exe!GuardedMainWrapper() []
0x00007ff705654e96 A_Space.exe!LaunchWindowsStartup() []
0x00007ff7056668e4 A_Space.exe!WinMain() []
0x00007ff70fd88bea A_Space.exe!__scrt_common_main_seh() [d:\a01_work\12\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
0x00007ff9d0df7614 KERNEL32.DLL!UnknownFunction []
0x00007ff9d22a26a1 ntdll.dll!UnknownFunction []

hope my problem can be solved, thanks

2 Likes

Same problem here did you find ?

Same issue now. Guessing the quickest fix is to just delete the Vigilante assets from the level?

@vB2sm and @Sparrow911x could you please try the proceeding steps that I tried and also please list the Visual Studio version, toolchain, and Windows SDK you are using to build the project? Also, do you include the prerequisite installer with the executable? Or include the app-local prerequisites directly (in the bottom of your Packaging section of Project Settings)?

Thanks!

EDIT: Ah! I tracked something down… are you two using InstaDeformComponent on your vehicles? This showed up when running Debug on the packaged project. Try turning off InstaDeform Plugin!

projectname-Win64-DebugGame.exe!FSkeletalMeshRenderData::InitResources(bool,class TArray<class UMorphTarget *,class TSizedDefaultAllocator<32> > &,class USkinnedAsset *)
projectname-Win64-DebugGame.exe!USkeletalMesh::InitResources(void)
projectname-Win64-DebugGame.exe!USkeletalMesh::FinishPostLoadInternal(class FSkinnedAssetPostLoadContext &)
projectname-Win64-DebugGame.exe!USkinnedAsset::PostLoad(void)
projectname-Win64-DebugGame.exe!USkeletalMesh::PostLoad(void)
[Inline Frame] projectname-Win64-DebugGame.exe!UInstaDeformComponent::SetupSkeletalMeshes::__l2::void <lambda>(void)::__l6::<lambda_22d10110ca9280980c693db7a74112c1>::operator()() Line 579
	at D:\build\U5M-Marketplace\Sync\LocalBuilds\PluginTemp\HostProject\Plugins\InstaDeform\Source\InstaDeform\Private\InstaDeformComponent.cpp(579)
[Inline Frame] projectname-Win64-DebugGame.exe!Invoke(UInstaDeformComponent::SetupSkeletalMeshes::__l2::void <lambda>(void)::__l6::<lambda_22d10110ca9280980c693db7a74112c1> &) Line 47
	at D:\RocketSync\5.1.0-23058290+++UE5+Release-5.1\Working\Engine\Source\Runtime\Core\Public\Templates\Invoke.h(47)
projectname-Win64-DebugGame.exe!UE::Core::Private::Function::TFunctionRefCaller<<lambda_22d10110ca9280980c693db7a74112c1>,void __cdecl(void)>::Call(void * Obj) Line 474
	at D:\RocketSync\5.1.0-23058290+++UE5+Release-5.1\Working\Engine\Source\Runtime\Core\Public\Templates\Function.h(474)
[External Code]

I can confirm that removing InstaDeformComponent made the packaged project work for me!

1 Like

Here are some steps I took which unfortunately have not resolved the issue:

  1. I replaced all Vigilante assets from the level, and also replaced all other Skeletal Meshes with the Simple Mannequin Skeletal Mesh which comes with Unreal Engine’s Default Content.
  2. Then, I deleted Saved and Intermediate folders, and used Clean Project plugin to make sure none of those original assets are included in the packaged build.
  3. I reran BuildCookRun using the following command:

RunUAT.bat -ScriptsForProject=D:/Projects/Unreal/Packaged/projectname.uproject Turnkey -command=VerifySdk -platform=Win64 -UpdateIfNeeded -EditorIO -EditorIOPort=11754 -project=D:/Projects/Unreal/Packaged/projectname.uproject BuildCookRun -nop4 -utf8output -nocompileeditor -skipbuildeditor -cook -project=D:/Projects/Unreal/Packaged/projectname.uproject -target=projectname -unrealexe="C:\Program Files\Epic Games\UE_5.1\Engine\Binaries\Win64\UnrealEditor-Cmd.exe" -platform=Win64 -installed -stage -archive -package -build -pak -iostore -compressed -prereqs -archivedirectory=D:/Projects/Unreal/Packaged/projectname/Builds -clientconfig=Development -nocompile -nocompileuat

And the problem persists when I open up the Executable. This was all performed using UE5.1.1 and its build tools. Here is the error:

Assertion failed: RenderSection.DuplicatedVerticesBuffer.DupVertData.Num() [File:D:\build\++UE5\Sync\Engine\Source\Runtime\Engine\Private\SkeletalMeshLODRenderData.cpp] [Line: 198] 



0x00007ff682c747a4 projectname.exe!FSkeletalMeshLODRenderData::InitResources() []
0x00007ff682c769ab projectname.exe!FSkeletalMeshRenderData::InitResources() []
0x00007ff682bea6e6 projectname.exe!USkeletalMesh::InitResources() []
0x00007ff682bdac04 projectname.exe!USkeletalMesh::FinishPostLoadInternal() []
0x00007ff682cde742 projectname.exe!USkinnedAsset::PostLoad() []
0x00007ff682bef487 projectname.exe!USkeletalMesh::PostLoad() []
0x00007ff67ad8887a carboncrusher.exe!UE::Core::Private::Function::TFunctionRefCaller<<lambda_22d10110ca9280980c693db7a74112c1>,void __cdecl(void)>::Call() [D:\RocketSync\5.1.0-23058290+++UE5+Release-5.1\Working\Engine\Source\Runtime\Core\Public\Templates\Function.h:474]
0x00007ff67d375db1 carboncrusher.exe!TGraphTask<FAsyncGraphTask>::ExecuteTask() []
0x00007ff67d38d284 projectname.exe!FNamedTaskThread::ProcessTasksNamedThread() []
0x00007ff67d38d63d projectname.exe!FNamedTaskThread::ProcessTasksUntilIdle() []
0x00007ff682f1ca1d projectname.exe!FTickTaskSequencer::ReleaseTickGroup() []
0x00007ff682f29879 projectname.exe!FTickTaskManager::RunTickGroup() []
0x00007ff68254b8d8 projectname.exe!UWorld::RunTickGroup() []
0x00007ff6825533bc projectname.exe!UWorld::Tick() []
0x00007ff682297f77 projectname.exe!UGameEngine::Tick() []
0x00007ff67acf6e9f projectname.exe!FEngineLoop::Tick() []
0x00007ff67ad1046e projectname.exe!GuardedMain() []
0x00007ff67ad1054a projectname.exe!GuardedMainWrapper() []
0x00007ff67ad13486 projectname.exe!LaunchWindowsStartup() []
0x00007ff67ad24ed4 projectname.exe!WinMain() []
0x00007ff684248caa projectname.exe!__scrt_common_main_seh() [D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
0x00007ff98e137614 KERNEL32.DLL!UnknownFunction []
0x00007ff98ec826a1 ntdll.dll!UnknownFunction []

So, this is strange, considering there are no Skeletal Meshes except for the simple ones which ship with the engine. I am wondering if 5.1.1 has an issue, and am now proceeding to attempt to build a different project which has almost nothing in it, but includes a character skeletal mesh. I will also attempt to build a duplicate of that same project for 5.0.3 and then see if anything works correctly. If so, I’ll try again to convert a copy of my project to 5.0.3 and rebuild.

So, upon navigating to "C:\Program Files\Epic Games\UE_5.1\Engine\Source\Runtime\Engine\Private\SkeletalMeshRenderData.cpp" and checking the Engine source files, I see the following at line 198:

void VerifyAllLodSkeletalMeshModelIntegrity(USkinnedAsset* Owner)
{
	if (!Owner || !Owner->GetImportedModel())
	{
		return;
	}

	FSkeletalMeshModel* SkelMeshModel = Owner->GetImportedModel();
	for (int32 LODIndex = 0; LODIndex < SkelMeshModel->LODModels.Num(); LODIndex++)
	{
		FSkeletalMeshLODModel* LODModel = &(SkelMeshModel->LODModels[LODIndex]);
		int32 SectionsVerticeNum = 0;
		int32 SectionsTriangleNum = 0;
		for (const FSkelMeshSection& Section : LODModel->Sections)
		{
			SectionsVerticeNum += Section.GetNumVertices();
			SectionsTriangleNum += Section.NumTriangles;
			int32 LastSectionIndexBuffer = Section.BaseIndex + (Section.NumTriangles * 3);
			if (Section.NumTriangles > 0)
			{
				//Remove 1 if we have at least one triangle
				LastSectionIndexBuffer--;
			}

			if (LODModel->IndexBuffer.IsValidIndex(LastSectionIndexBuffer))
			{
				uint32 FirstSectionIndexBufferValue = LODModel->IndexBuffer[Section.BaseIndex];
				uint32 LastSectionIndexBufferValue = LODModel->IndexBuffer[LastSectionIndexBuffer];
				if (FirstSectionIndexBufferValue < Section.BaseVertexIndex || LastSectionIndexBufferValue >= Section.BaseVertexIndex + Section.GetNumVertices())
				{
					UE_ASSET_LOG(LogSkeletalMesh, Error, Owner, TEXT("The source model is corrupted! Section triangle refer to a vertex not in the section. LOD %d"), LODIndex);
				}
			}
			else
			{
				UE_ASSET_LOG(LogSkeletalMesh, Error, Owner, TEXT("The source model is corrupted! Section index buffer is invalid. LOD %d"), LODIndex);
			}
		}

		if (LODModel->NumVertices != SectionsVerticeNum)
		{
			UE_ASSET_LOG(LogSkeletalMesh, Error, Owner, TEXT("The source model is corrupted! Total sections vertice count is different from source model vertice count. LOD %d"), LODIndex);
		}
		if ((LODModel->IndexBuffer.Num() / 3) != SectionsTriangleNum)
		{
			UE_ASSET_LOG(LogSkeletalMesh, Error, Owner, TEXT("The source model is corrupted! Total sections triangle count is different from source model triangle count (index count divide by 3). LOD %d"), LODIndex);
		}
	}
}

Specifically, the line UE_ASSET_LOG(LogSkeletalMesh, Error, Owner, TEXT("The source model is corrupted! Section index buffer is invalid. LOD %d"), LODIndex);

So, either there is an issue with the Skeletal Meshes themselves, or there is indeed, a missing function somewhere in (in my instance) [D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288]

In your case @Sparrow911x:
[d:\a01_work\12\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288]

I’m using Visual Studio Community 2022 v17.5.0 with the Windows 10 SDK 10.0.20348.0 and Windows 11 SDK (10.0.22000.0) installed. It appears the 14.35.32215 toolchain is getting used, with the Windows 10.0.22000.0 SDK:

Using Visual Studio 2022 14.35.32215 toolchain (C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215) and Windows 10.0.22000.0 SDK (C:\Program Files (x86)\Windows Kits\10).

Could it be possible that there’s an issue with the prerequisites getting packaged with the project? Or just the toolchain in general?

EDIT: Tracked down the issue to InstaDeformComponent using Debug Breakpoints with Editor Debug Symbols as per Debugging How To Debug Packaged Games | Unreal Engine Community Wiki (unrealcommunity.wiki)

Is there a fix for this?

1 Like

I am experiencing the same crash in my packaged game. Works fine in the editor.

Using Unreal Engine 5.1.1.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.