Description

FStaticMeshRenderData::Cache has the assertion:

checkf(Owner->IsMeshDescriptionValid(0), TEXT("Bad MeshDescription on %s"), *GetPathNameSafe(Owner));

This assertion can be triggered by data errors on assets. Sometimes licensees cook their entire depot with -cookall, and cook invalid assets that trigger this error. They can workaround the issue by deleting the assets, but this takes time and it would be better if the cooker gave an error but did not crash on the bad assets.

Callstack from Release-5.2.

Error: === Critical error: ===
Error:
Error: Assertion failed: Owner->IsMeshDescriptionValid(0) [File:Engine\Source\Runtime\Engine\Private\StaticMesh.cpp] [Line: 3048]
Error: Bad MeshDescription on <PackageName>
Error:
Error:
Error: FStaticMeshRenderData::Cache() [Engine\Source\Runtime\Engine\Private\StaticMesh.cpp:3048]
Error: UStaticMesh::CacheDerivedData() [Engine\Source\Runtime\Engine\Private\StaticMesh.cpp:5349]
Error: UStaticMesh::ExecutePostLoadInternal() [Engine\Source\Runtime\Engine\Private\StaticMesh.cpp:6048]
Error: FAsyncTask<FStaticMeshAsyncBuildWorker>::DoTaskWork() [Engine\Source\Runtime\Core\Public\Async\AsyncWork.h:617]
Error: FAsyncTaskBase::DoWork() [Engine\Source\Runtime\Core\Public\Async\AsyncWork.h:285]
Error: FAsyncTaskBase::DoThreadedWork() [Engine\Source\Runtime\Core\Public\Async\AsyncWork.h:309]
Error: FQueuedThreadPoolWrapper::FScheduledWork::DoThreadedWork() [Engine\Source\Runtime\Core\Public\Misc\QueuedThreadPoolWrapper.h:128]
Error: FQueuedThreadPoolWrapper::FScheduledWork::DoThreadedWork() [Engine\Source\Runtime\Core\Public\Misc\QueuedThreadPoolWrapper.h:128]
Error: `LowLevelTasks::FTask::Init<...>'::`11'::<lambda_2>::operator()() [Engine\Source\Runtime\Core\Public\Async\Fundamental\Task.h:499]
Error: LowLevelTasks::TTaskDelegate<...>::TTaskDelegateImpl<...>::CallAndMove() [Engine\Source\Runtime\Core\Public\Async\Fundamental\TaskDelegate.h:171]
Error: LowLevelTasks::FTask::ExecuteTask() [Engine\Source\Runtime\Core\Public\Async\Fundamental\Task.h:627]
Error: LowLevelTasks::FScheduler::ExecuteTask() [Engine\Source\Runtime\Core\Private\Async\Fundamental\Scheduler.cpp:172]
Error: LowLevelTasks::FScheduler::TryExecuteTaskFrom<...>() [Engine\Source\Runtime\Core\Private\Async\Fundamental\Scheduler.cpp:350]
Error: LowLevelTasks::FScheduler::WorkerMain() [Engine\Source\Runtime\Core\Private\Async\Fundamental\Scheduler.cpp:378]
Error: UE::Core::Private::Function::TFunctionRefCaller<...>::Call() [Engine\Source\Runtime\Core\Public\Templates\Function.h:475]
Error: FThreadImpl::Run() [Engine\Source\Runtime\Core\Private\HAL\Thread.cpp:67]
Error: FRunnableThreadWin::Run() [Engine\Source\Runtime\Core\Private\Windows\WindowsRunnableThread.cpp:149]
Error: FRunnableThreadWin::GuardedRun() [Engine\Source\Runtime\Core\Private\Windows\WindowsRunnableThread.cpp:79]
Steps to Reproduce

We don't have repro steps without the broken StaticMesh asset.

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-193457 in the post.

1
Login to Vote

Fixed
Fix Commit33494735
CreatedAug 21, 2023
ResolvedMay 7, 2024
UpdatedMay 16, 2024